Programación en castellano
Inicio > Foros > Oracle > Salida a Fichero
-Foros de debate

Oracle
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Salida a Fichero
Enviado por navato el día 16 de enero de 2006

Buenas a todos:

Tengo una pregunta un poquito tonta, pero soy novato en esto y me pregunto si alguno me podeis ayudar con lo siguiente...:

Necesito sacar los mensajes de un proceso pl/sql en un fichero para hacer un log. Me podeís ayudar??????

Muchas gracias

 
Re: Salida a Fichero
Enviado por leoriyagami el día 16 de enero de 2006

Para poder hacer eso que dices necesitas usar el paquete UTL_FILE, es bastante sencillo:
1º Declara una variable tipo File_Type: v_file UTL_FILE.File_Type;
2º Luego abres el archivo: v_file := UTL_FILE.FOPEN ('path', 'nombrearchivo.extension', 'W'); la W significa abierto para escritura.
3º Luego para escribir sobre el archivo usas la siguiente linea cuantas lineas quieras UTL_FILE.PUT_LINE(v_file,'lo_que_vas_a_escribir');
4º No se te olvide cerrar el archivo cuando termines de escribir sobre el, lo haces con esta instrucción UTL_FILE.Fclose(v_file);

Espero te sirva...Suerte!

 
Re: Re: Salida a Fichero
Enviado por navato el día 17 de enero de 2006

Sigo tus instrucciones:

declare
v_file utl_file.file_type;
begin
v_file:= sys.utl_file.fopen(\\\'C:\\\\carpeta\\\\\\\',\\\'nuevo.log\\\',\\\'W\\\');
sys.UTL_FILE.PUT_LINE(v_file,\\\'lo_que_vas_a_escribir\\\');
sys.UTL_FILE.Fclose(v_file);
end;

y me aparecen los siguientes errores:

ORA-06510 PL/SQL EXCEPCION DEFINIDA POR EL USUARIO NO TRATADA.
ORA-06512 EN \\\"SYS.UTL_FILE\\\", LINEA 183
ORA-06512 EN LINEA 6

Muchas gracias por tu ayuda

 
Re: Re: Re: Salida a Fichero
Enviado por navato el día 17 de enero de 2006

Las \\\ se han puesto solitas, jejeje.

 
Re: Re: Re: Re: Salida a Fichero
Enviado por Jor-El el día 17 de enero de 2006

Pos me dá que el path que le pones no es el correcto.

La ruta del archivo tiene que ser la misma que el resultado de esta select :

select value
from v$parameter
where name = 'utl_file_dir';

 


Re: Re: Re: Salida a Fichero
Enviado por leoriyagami el día 17 de enero de 2006

UTL_FILE solo te permite escribir archivos en el servidor, ten en cuenta eso, si lo necesitas del lado del cliente debes usar otra cosa, que no se que puede ser...

Otro punto a considerar es la versión de la base de datos, Antes de 9i le debes dar un directorio unico para todos los esquemas en utl_file_dir, desde 9i tu puedes hacer un Create Directory y luego un Grant a los esquemas que lo van a usar, esto te permite varios directorios, asi los bomberos no se pisan la manguera.

No te especifico bien como haces el Create y el Grant porque no tengo los permisos asi que no pude probar, lo que te escribo me lo comento el DBA, espero aclare tus dudas.

Suerte!

Suerte!

 
Re: Re: Re: Re: Salida a Fichero
Enviado por navato el día 18 de enero de 2006

Gracias Jor-El, efectivamente si pongo esa ruta funciona correctamente. El caso es que necesito escribir el fichero en local, no en el servidor, como puedo hacerlo?????
Muchas gracias por vuestra ayuda.

 
Re: Re: Re: Re: Re: Salida a Fichero
Enviado por Jor-El el día 18 de enero de 2006

El compañero leoriyagami ( o sus compis ) creo que está confundido.

Si en INITORA.ORA en utl_file_dir le pones un asterisco ( * ) puedes escribir en cualquier directorio del servidor, no en uno solo.

Y eso te rula en todas las versiones desde la 7.3 ( Creo ), por lo menos en máquinas NT, en UNIX ó LINUX no se si eso colará

Si lo quieres escribir en tu local, mal asunto. Se me ocurren dos cosas :

1-) Crearlo en el utl_file_dir y traertelo a tu local por FTP. ( En www.oracle.com hay un script para crear un paquete que hace eso )
2-) Si utilizas el Forms, usa el TEXT_IO, es exactamente igual que el utl_file, pero puedes dejar la " basurilla " en tu local.

SI a algún compañero forero se le ocurre algo, que nos haga párticipe de sus ideas

 
Re: Re: Re: Re: Re: Re: Salida a Fichero
Enviado por navato el día 18 de enero de 2006

os explico lo que tengo que hacer por si se os ocurre como:
Tengo un acceso a la base de datos en un servidor remoto y necesito hacer un procedimiento pl/sql puro y duro (no forms) que compruebe datos de una tabla y mostrar los registros que no cumplan ciertas condiciones. Es por esto por lo que necesito generar un fichero de texto, pero no puedo hacerlo en el servidor donde se encuentra la base de datos y por eso necesito hacerlo en local. Se os ocurre algo??????.
Muchas gracias por vuestra ayuda.

 

Re: Re: Re: Re: Re: Re: Salida a Fichero
Enviado por leoriyagami el día 18 de enero de 2006

Gracias por el dato Jor-El, esa del ( * ) no me la sabia.
Saludos.

 
Re: Re: Re: Re: Re: Re: Re: Salida a Fichero
Enviado por adrian el día 19 de enero de 2006

menudo agujero de seguridad el * en un server....

 
Re: Re: Re: Re: Re: Re: Re: Re: Salida a Fichero
Enviado por Jor-El el día 19 de enero de 2006

¿ Por ?

Haznos participes de tu sabiduria sobre seguridad por favor.

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: Salida a Fichero
Enviado por eddie_ el día 19 de enero de 2006

Comparto lo del * en el servidor, es muy mala idea. En lugar de agujero seria un crater.
Ya el hecho de permitir escribir en el servidor no me gusta, implica trabajo extra para el dba que se ve obligado de por vida a administrar ese directorio, hay otras alternativas.
Ahora escribir en cualquier directorio del servidor es totalmente inaceptable. Que te impide que reescribas cualquier archivo del sistema y cambies la configuracion? Que te impide que llenes el espacio disponible en los discos y caiga el servidor? Que te impide que accedas a informacion sensible? Etc, etc...

Saludos

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Salida a Fichero
Enviado por navato el día 19 de enero de 2006

eo, eo
y de lo mio que hay????, se os ocurre algo???
porfa.
Muchas gracias.

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Salida a Fichero
Enviado por eddie_ el día 19 de enero de 2006

Yo lo haria en Java, llamas al PL/SQL que genera el log en el server y luego lo 'bajas' desde la aplicacion, la cual esta corriendo local.

Saludos

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Salida a Fichero
Enviado por Jor-El el día 19 de enero de 2006

eddie_

creo que te equivocas y que confundes churras con merinas. Vamos por partes.

¿ que tiene un DBA que administrar en el utl_file_dir ? y si implica trabajo extra pa'l dba, sinceramente que se aguante, para eso está y para eso le pagan. Pero eso no es problema de los DBA's. Administrar un directorio es tema de la gente de redes, no de DBA's

Y ahora cito textualmente lo que has escrito y te doy mi opinión.

Que te impide que reescribas cualquier archivo del sistema y cambies la configuracion?

Pues así ,a bote pronto, por ejemplo que se tengan o no se tengan permisos de escritura en esos directorios.

Que te impide que llenes el espacio disponible en los discos y caiga el servidor?

Pues basicamente el que alcance la cuota permitida de escritura en esos directorios.


Que te impide que accedas a informacion sensible? Etc, etc...

Si no tienes permisos de lectura, no hay nada que arrascar ¿ no ?


Pero todo esto no entra dentro de la administración de oracle, si no de la propia máquina y esto en muchos casos no es tema de DBA's y en otros muchos si, pq tienen la máquina en propiedad

Ah, el que se ponga un asterisco no quiere decir que puedas escribir / leer donde te dé a ti la realisima gana, sino donde a nivel de SO tengas permisos para hacerlo.

Enga compis, a seguir bien de bien

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Salida a Fichero
Enviado por eddie_ el día 19 de enero de 2006

Permiteme citarte:
"Si en INITORA.ORA en utl_file_dir le pones un asterisco ( * ) puedes escribir en cualquier directorio del servidor"
Lo escribi yo? No.
Cualquiera que lee esto puede suponer que tu usuario del SO tiene permisos para escribir en cualquier directorio del servidor. Punto. Es logico que asi lo entienda.

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Salida a Fichero
Enviado por Jor-El el día 19 de enero de 2006

Si, claro.

A lo mejor me expliqué mal, pero bueno, todo es pensar un poco., a grandes rasgos Oracle es simplemente software que reside en una maquina ¿no?

Ah, Nunca he visto utilizar el * ( Yo lo utilizo , pero en el ordenata de mi casa )

Bye

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Salida a Fichero
Enviado por leoriyagami el día 19 de enero de 2006

Entonces como conclución es mejor no usar el ( * ), es mejor crear el directorio y darle los permisos necesarios, pero en fin, Como se hace para escribir en el cliente???

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Salida a Fichero
Enviado por eddie_ el día 19 de enero de 2006

Debes tener algo que te permita bajar el archivo del servidor a tu maquina local, por ejemplo una aplicacion en java.

 
Creacion de Archivos planos entre maquinas distintas
Enviado por Demian el día 3 de marzo de 2006

Hola.
Necesito saber si es posible crear un archivo plano a partir de Oracle (con Utl_file obviamente), pero a otra maquina no a la misma donde reside Oracle ?....Si es posible como seria la instrucción que indica la ruta de acceso ?.

Saludos.
Demian

 
Re: Creacion de Archivos planos entre maquinas distintas
Enviado por Jor-El el día 3 de marzo de 2006

¿ te has leido los post de mas arriba ?

 
Re: Re: Creacion de Archivos planos entre maquinas distintas
Enviado por Sandra83 el día 6 de marzo de 2006

¿ sabes leer , Melon Eunuco ?

Te ponen las contestación en todos y cada uno de los post de este hilo y preguntas la misma gilipollez.

Pareces retrasado mental.

Me poneis negra ¡ ¡ ¡ ¡ ¡ ¡ ¡, como puede haber tanto gilipollas por estos lares

 
Re: Re: Re: Creacion de Archivos planos entre maquinas distintas
Enviado por Demian el día 7 de marzo de 2006

Puta conchetumadre en ninguna parte mencionas si se pueden hacer esto entre servidores distintos por eso estoy preguntando hija de la gran puta que te parió

 
Re: Re: Re: Re: Creacion de Archivos planos entre maquinas distintas
Enviado por Sandra83 el día 7 de marzo de 2006

Será hijo de una madre y 500 padres ¡ ¡ ¡ ¡

LEE ESTO, CABRÓN :
=================================

UTL_FILE solo te permite escribir archivos en el servidor, ten en cuenta eso, si lo necesitas del lado del cliente debes usar otra cosa, que no se que puede ser...

=================================

Sevidor solo hay uno : EL TUYO

El resto son maquinas remotas o clientes.

Bah, ni me molesto, así te reviente el culo un puto senegales, a ti y a la conchuda y jinetera madre que te cagó, porque tu saliste por el culo no por su coño

QUE TE JODAN, HIJO PUTA...........................



 
Re: Re: Re: Re: Re: Creacion de Archivos planos entre maquinas distintas
Enviado por Vicente el día 23 de marzo de 2006

Tomate un Valium

 

Re: Re: Re: Re: Re: Creacion de Archivos planos entre maquinas distintas
Enviado por Vicente el día 23 de marzo de 2006

Tomate un VALIUM, que te va a dar algo...

 
Re: Re: Re: Re: Re: Re: Creacion de Archivos planos entre maquinas distintas
Enviado por servesa el día 12 de mayo de 2006

Le habrá bajado la regla..

 
Re: Re: Re: Re: Re: Re: Re: Creacion de Archivos planos entre maquinas distintas
Enviado por Boanerges Perez el día 12 de mayo de 2006

Sandra.. hija de la mas puta Jinetera que la parieron en el 7mo Burdel del mediterraneo.. porque vas a insultar a ese pobre imbesil que no sabe nada de Oracle!!!! Aqui solo hay cabida para sabios como Yo el Boa de las DB's todos son unos ignorantes en este Foro.. no saben ni levantar una DB Oracle.. vayanse a adminstrar Access uqe es aciorde a su conocimiento.
Ahh dicto clases para Dummys.. mi tele es 58 0212 5603458 ( Viva Chavez,, el che , y la madre uqe los parios en 4 patas )

 
Re: Re: Re: Re: Re: Re: Re: Re: Creacion de Archivos planos entre maquinas distintas
Enviado por keteimporta el día 13 de diciembre de 2007

jaja que cherry-... Viva MySql .. oracle es pura imagen

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: Creacion de Archivos planos entre maquinas distintas
Enviado por Roman el día 27 de diciembre de 2007

Para escribir en el lado del cliente utiliza el comando spool

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Creacion de Archivos planos entre maquinas distint
Enviado por ruben el día 12 de febrero de 2008

Como se hace eso??? como se usa el Spool dentro de un procedimiento almacenado en oracle???

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Creacion de Archivos planos entre maquinas dis
Enviado por Maximus el día 19 de marzo de 2008

Por favor no pierdan el foco, precisamente para eso son los foros no para demostrar quien sabe mas o quien es el mejor si no para ayudar a resolver las dudas de los demas. no sean sobervios todos los dias se aprende de los demas y todos los dias tenemos nuevas inquietudes y dudas

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Creacion de Archivos planos entre maquinas
Enviado por Jose el día 7 de abril de 2008

Aprovechando esta pregunta, me gustaria saber si me pueden ayudar con un error, actualmente necesito generar desde Oracle un reporte el cual tiene una longitud por registro de 1800Caracteres y el UTL_FILE.PUT_LINE tiene una limitante en el numero de caracteres... alguien sabe como se corrige esto ? como le indico que la cadena es mucho mas largar ??? muchas gracias por su ayuda

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Creacion de Archivos planos entre maqu
Enviado por unnamed el día 12 de junio de 2008

define una cadena del tip CLOB
-- cadena CLOB;
llenala y escribela en el archivo
-- UTL_FILE.PUT_LINE(archivo, cadena);

 
Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Creacion de Archivos planos entre
Enviado por unnamed el día 12 de junio de 2008

Lo anterior funcionó lo único que tenés que tener en cuenta es que la en oracle 9i la longitud máxima que se puede escribir es de 32K.

The maximum line length that can be written is 32K in 9i. (http://www.adp-gmbh.ch/ora/plsql/utl_file.html)
Saludos.

 










Re: Re: Re: Re: Re: Creacion de Archivos planos entre maquinas distintas
Enviado por sandro el día 18 de junio de 2008

Que gran aportación, encima de que no soluciona nada, insulta.
"otra cosa, que no se que puede ser..."
Andá a fregar.

 























Tienda
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad
Mantenida por: Claudio y Dani.

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | amor | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | gratis | posicionamiento en buscadores | decoración libre | gifs animados