Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/06/2010, 17:02
Avatar de xf_corp
xf_corp
 
Fecha de Ingreso: mayo-2008
Mensajes: 57
Antigüedad: 16 años
Puntos: 3
Respuesta: guardar datos en txt

Un ejemplo básico:

CREATE OR REPLACE PROCEDURE "EXTRACT" IS

VALOR1 TABLA.CAMPO1%TYPE;
VALOR2 TABLA.CAMPO2%TYPE;
VALOR3 TABLA.CAMPO3%TYPE;

ARCHIVO UTL_FILE.FILE_TYPE;


TEXTO VARCHAR2(1000);
ERRMSG VARCHAR2(500);

CURSOR C_VALORES IS
SELECT CAMPO1,CAMPO2,CAMPO3
FROM TABLA;

BEGIN

OPEN C_VALORES;
ARCHIVO:= UTL_FILE.FOPEN('/path','archivo.txt','W');

LOOP
FETCH C_VALORES INTO VALOR1,VALOR2,VALOR3;
EXIT WHEN C_VALORES%NOTFOUND;
TEXTO:= VALOR1||VALOR2||VALOR3;
UTL_FILE.PUT_LINE(ARCHIVO,TEXTO);
END LOOP;

CLOSE C_VALORES;
UTL_FILE.FCLOSE(ARCHIVO);

EXCEPTION
WHEN UTL_FILE.INVALID_PATH THEN
DBMS_OUTPUT.PUT_LINE('Path Invalido');
WHEN UTL_FILE.INVALID_MODE THEN
DBMS_OUTPUT.PUT_LINE('Modo Invalido');
WHEN UTL_FILE.INVALID_FILEHANDLE THEN
DBMS_OUTPUT.PUT_LINE('Filehandle invalido');
WHEN OTHERS THEN
ERRMSG := SQLERRM;
DBMS_OUTPUT.PUT_LINE('ERROR: '||ERRMSG);
END;
/

Saludos.