En esta entrada vamos a ver un ejemplo de como exportar datos desde ORACLE Foms a CSV.
ORACLE forms es muy limitado pero si dispones de webutil puedes utilizar estas funciones para conseguir pasar tus datos desde forms a csv.
Este sería el código del ejemplo
DECLARE FILA INTEGER:=1; LINEA varchar2(2000); control BOOLEAN := TRUE; cTxNomFic VARCHAR2(2000) := 'elnombreCsv_'||TO_CHAR(SYSDATE,'YYYYMMDD_HHMISS')||'.csv'; cLalinea VARCHAR2(20000) := NULL; cAccion VARCHAR2(2000); in_file CLIENT_text_io.file_type; RET PLS_INTEGER; lNoHayCostes BOOLEAN:=TRUE; CURSOR C1(numPedido IN NUMBER) IS SELECT CAMPO1,CAMPO2,CAMPO3 FROM AVSERCOS WHERE NUALBARM = numPedido GROUP BY NUPROVEE; BEGIN go_block('BL_EXCEL'); FIRST_RECORD; BEGIN in_file := CLIENT_text_io.fopen(prueba.direccion||'\'||cTxNomFic, 'W'); EXCEPTION WHEN OTHERS THEN RET := MENSAJE.F_MENSAJE('E','No se ha podido abrir el fichero.'); control := FALSE; END; IF control THEN cLalinea := 'uno'||';'||'dos'||';'||'tres'||';'||'cuatro'||';'||'cinco'||';'|| 'seis'||';'||'siete'||';'||'ocho'||';'||'nueve'||';'||'diez'||';'|| 'once'||';'; cLalinea := TRADUCTOR.F_EXCEL(cLalinea,:GLOBAL.IDIOMA); CLIENT_TEXT_IO.PUT_LINE(In_File, cLalinea); LOOP IF :BL_EXCEL.EF_CDCONTEN IS NULL THEN EXIT; END IF; FILA := FILA +1; cLalinea := :BL_EXCEL.UNO||';'||:BL_EXCEL.DOS||';'||:BL_EXCEL.TRES||';'||:BL_EXCEL.CUATRO||';'||:BL_EXCEL.CINCO||'-'||:BL_EXCEL.SEIS||'-'||:BL_EXCEL.SIETE||'-'||:BL_EXCEL.OCHO||';'|| :BL_EXCEL.NUEVE||';'||:BL_EXCEL.DIEZ||';'||:BL_EXCEL.ONCE||';'||:BL_EXCEL.UNO||';'|| :BL_EXCEL.DOS||';'||:BL_EXCEL.TRES||';'; CLIENT_TEXT_IO.PUT_LINE(In_File, cLalinea); IF :SYSTEM.LAST_RECORD = 'TRUE' THEN EXIT; END IF; NEXT_RECORD; END LOOP; BEGIN CLIENT_text_io.fClose(in_file); EXCEPTION WHEN OTHERS THEN RET := MENSAJE.F_MENSAJE('E','No se ha podido cerrar el fichero.'); control := FALSE; END; IF control THEN RET := MENSAJE.F_MENSAJE('A','Fichero generado.;Directorio#'||AS0BD001.FC_FANUBIS||'#Nombre Fichero#'||cTxNomFic); END IF; END IF; EXCEPTION WHEN OTHERS THEN CLIENT_text_io.fClose(in_file); END; |
Espero que te haya sido útil.