Oracle - Ayuta con el UTL_FILE.PUT_LINE

   
Vista:

Ayuta con el UTL_FILE.PUT_LINE

Publicado por Marco (2 intervenciones) el 15/02/2013 00:40:08
ya tengo mi funcion de envia al texto los datos de mi tabla :

100 Steven King SKING 515.123.456717

pero yo nesecito que se exporte en posiciones

codigo se del 1 al 3
nombre 4 al 10
empresa 11 al 20


espero me puedan ayudar nesecito darle posiciones muchas gracias por la ayuda que me puedan dar

este es el codigo

create or replace
PACKAGE BODY GENERAR_ARCHIVO AS

PROCEDURE USP_INTERFACES_DWH
IS
--declaración de variables
CURSOR CURSOR_01 IS
SELECT EMPLOYEE_ID AS CODIGO ,
FIRST_NAME AS NOMBRE,
LAST_NAME AS APELLIDO,
EMAIL AS MAIL,
PHONE_NUMBER AS NUMERO,
HIRE_DATE AS FECHA,
JOB_ID AS TRABAJO,
SALARY AS SALARIO,
COMMISSION_PCT AS COMISION,
MANAGER_ID AS MANAGER,
DEPARTMENT_ID AS DEPARTAMENTO
FROM EMPLOYEES ORDER BY employee_id ASC;

V_ARCHIVO_NORMAL UTL_FILE.FILE_TYPE;
AUX_CURSOR_01 CURSOR_01%ROWTYPE;
BEGIN
V_ARCHIVO_NORMAL := UTL_FILE.FOPEN('DIR_CARGA','PRUEBA.TXT','W');

OPEN CURSOR_01;
LOOP
FETCH CURSOR_01 INTO AUX_CURSOR_01;
EXIT WHEN CURSOR_01%NOTFOUND;
--UTL_FILE.PUT_LINE (V_ARCHIVO_NORMAL,'01'||'|'||
UTL_FILE.PUT_LINE (V_ARCHIVO_NORMAL,
AUX_CURSOR_01.CODIGO ||
AUX_CURSOR_01.NOMBRE||
AUX_CURSOR_01.APELLIDO||
AUX_CURSOR_01.MAIL||
AUX_CURSOR_01.NUMERO||
AUX_CURSOR_01.FECHA||
AUX_CURSOR_01.TRABAJO||
AUX_CURSOR_01.SALARIO||
REPLACE(AUX_CURSOR_01.COMISION,',','.')||
REPLACE(AUX_CURSOR_01.MANAGER,',','.')||
REPLACE(AUX_CURSOR_01.DEPARTAMENTO,',','.')||
TO_CHAR(SYSDATE,'DD/MM/YYYY'));
END LOOP;
CLOSE CURSOR_01;
UTL_FILE.FCLOSE(V_ARCHIVO_NORMAL);

END USP_INTERFACES_DWH ;

END GENERAR_ARCHIVO;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de rtb

Ayuta con el UTL_FILE.PUT_LINE

Publicado por rtb (18 intervenciones) el 18/02/2013 02:41:24
hola a ver, proba asi , formateas las salidas numericas con LPAD y los caracteres con RPAD

OPEN CURSOR_01;
LOOP
FETCH CURSOR_01 INTO AUX_CURSOR_01;
EXIT WHEN CURSOR_01%NOTFOUND;

UTL_FILE.PUT_LINE (V_ARCHIVO_NORMAL,
lpad(AUX_CURSOR_01.CODIGO),3,'0' ||
rpad(AUX_CURSOR_01.NOMBRE,10,' ')||
rpad(AUX_CURSOR_01.APELLIDO,20,' ')||

AUX_CURSOR_01.MAIL||
AUX_CURSOR_01.NUMERO||
AUX_CURSOR_01.FECHA||
AUX_CURSOR_01.TRABAJO||
AUX_CURSOR_01.SALARIO||
REPLACE(AUX_CURSOR_01.COMISION,',','.')||
REPLACE(AUX_CURSOR_01.MANAGER,',','.')||
REPLACE(AUX_CURSOR_01.DEPARTAMENTO,',','.')||
TO_CHAR(SYSDATE,'DD/MM/YYYY'));
END LOOP;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar