Existen varias formas de obtener un archivo plano... Si lo que quieres es tan solo obtener un archivo plano de datos contenidos en tablas de la base de datos puedes hacer user uso desde sql de la instrucción spool ruta. nombre_archivo Ejemplo : sql>spool c:\scripts\plano.lst luego haces un select de lo que necesites.. ejemplo select * from tab; El resultado del select te queda almacenado en el archivo plano llamado plano. Lst en el disco c y en el subdirectorio scripts.. no olvides al final colocar spool off.. sino el archivo queda abierto y sigue grabando todo lo que hagas.. *** Si quieres formatear las salidas... ejemplo con n espacios a la izquierda o derecha utiliza los comando rpad y/o lpad aplicados a campos tipo caracter.. asi como rtrim y ltrim segun las necesidades... Si lo que deseas es hacer un archivo plano desde un pl/sql bueno haces un archivo *.sql el cual contenga los select o demás que armen el archivo y desde el pl/sql o desde form utilizamos el comando host para invocar a sql ejecutando el archivo *.sql... y así logras hacer el archivo plano... En verdad es muy fácil... primero armas una cadena asi: conn:=v_usuario||'/'||v_clave||'@'v_data; conn:='sqlplus '||conn||' @c:\developer\sql\plano.sql'; host(conn,no_screen) *** logico que primero tuviste que atrapar el usuario... la clave y el string de conexion asi : v_usuario:=get_applicacion_property(username); v_clave:=get_applicacion_property(password); v_data:=get_applicacion_property(connect_string); todas las anteriores variables son declaradas varchar2(30); Suerte amigo.. Desde forms la forma más fácil dee hacerlo es con el packete text_io... Supongo que lo necesitas es desde