PDA

Ver la Versión Completa : Cómo exportar una consulta de Oracle 10i a un archivo .txt


Saul990
30-03-2005, 07:26:19
Pretendo realizar una consulta en Oracle por ejemplo:

De la siguiente consulta:

Select * From Juzgados Where Anio like "2005";

La salida de esta consulta quisiera obtener la en un archivo de texto plano sin que sea un reporte.

De ante mano gracias.

Neftali [Germán.Estévez]
30-03-2005, 10:19:06
Puedes conectar a Oracle vís ADO (por ejemplo); Con un ADOQuery debría bastar. A partir de ahí la exportación la puedes realizar "a mano" (1) o utilizando algun componente externo (2).

(1) Debes hacer un recorrido doble (dos FOR anidados) por el dataset; El primer recorrido que te divida los registros (por ejemplo con un caracter de "salto de línea") y el segundo (el más interno) que te separa las columnas (Fields) utilizando una Coma o un TAB. Lo vas guardando en un TStrings por ejemplo y al final lo guardas a fichero con un SaveToFile.

(2) Si quieres usar algun componente externo, yo personalmente he utilizado alguna vez los de Max y son sencillos (gratuítos y con fuentes).
http://www.maxcomponents.net/components.html#EXPORT

Toñico
05-05-2005, 10:27:27
Hola Saul990,

Si estás ejecutando la consulta desde el isqlplus de Oracle, existe el comando Spool o algo parecido que redirecciona la salida de la pantalla a un fichero de texto.

Un saludo.

ramiretor
10-05-2005, 17:05:08
Hola:
Como ya te han dicho, spool, direcciona la salida, por ejemplo:

spool c:\miarhivo.txt;
select * from mitabla
where condicion;
spool off;


Espero te sirva

Paoti
28-06-2005, 16:58:58
otra posible solucion usando las herramientas de ORACLE en especial Pl/SQL

es usando UTL_FILE, adjunto un ejemplo de esta herra ineta, lo que hace es gegerar un archivo de texto plano.... en un directorio del servidor...


PROCEDURE PRFILE
is
f utl_file.file_type;
begin
f := utl_file.fopen('dir_LOCAL', 'something.txt', 'w');
utl_file.put_line(f, 'line one: si funcionaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
utl_file.put_line(f, 'line two: more text');
utl_file.fclose(f);
end;



ahora lo que tendrias que hacer es generarte un cursor de tu consulta sql, darle formato, y ejecutar Put_line....



fopen('dir_LOCAL', 'something.txt', 'w'); <--- investiga la opcion CREATE DIRECTORY de oracle, para dar de alta un carpeta del servidor donde puedes leer y escribir archivos