Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

fecha en nombre de archivo

Estas en el tema de fecha en nombre de archivo en el foro de Oracle en Foros del Web. Hola. necesito crear un nombrte de archivo con la fecha de hoy http://forums.oracle.com/forums/thre...196147&#196147 spool C:\pdicom\AVSDIC_022_20060821_03.txt select lpad(count(1),12,'0')||lpad(sum(monto),18,'0')||'0 0'||'R'||'' from dato / spool off...
  #1 (permalink)  
Antiguo 21/08/2006, 11:31
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
fecha en nombre de archivo

Hola.

necesito crear un nombrte de archivo con la fecha de hoy

http://forums.oracle.com/forums/thre...196147&#196147

spool C:\pdicom\AVSDIC_022_20060821_03.txt
select lpad(count(1),12,'0')||lpad(sum(monto),18,'0')||'0 0'||'R'||'' from dato
/
spool off

__________________
Dios es mas grande que tu problema :-)
  #2 (permalink)  
Antiguo 22/08/2006, 07:53
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
De acuerdo

Quiza no me explique de buena forma.

Necesito hacer un archivo en forma externa con spool, pero que el nombre de ese archivo tenga como parametro, la fecha en que se ejecuto.

spool c:/archivo/algo_20060822_a
donde 20060822 es la fecha de hoy.

Atte
M
__________________
Dios es mas grande que tu problema :-)
  #3 (permalink)  
Antiguo 22/08/2006, 09:57
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
Quiza nadie te contesto porque en el enlace que dejaste esta como hacerlo
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #4 (permalink)  
Antiguo 22/08/2006, 13:59
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
Muchas gracias por responder.
Amigo. mi experiencia sin duda no llega a hacerle sombra a nadie. Sin embargo trate de implementar ese ejemplo que encontré sin obtener un resultado esperado.
Te cuento que hice un archivo externo que luego ejecuto con start + path
en el incluí las lineas que ahi aparecen.
Luego, en vista del resultado me atreví a exponerlo aqui.
Atte
M.

Quiza tu lo has echo y me das una idea de mi error.
__________________
Dios es mas grande que tu problema :-)
  #5 (permalink)  
Antiguo 23/08/2006, 09:38
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
En estos momentos no tengo a la mano mis pc con Oracle pero te dejo este que ha salido al vuelo... posiblemente alguna como o punto por ahi esta mal ya que como te repito no tengo Oracle en estos momentos a la mano.

Código:
DECLARE
   miarchivo varchar2(50) default null;
BEGIN
Select to_char(sysdate, 'YYYYMMDD') miarchivo from dual ;
spool C:\&miarchivo.txt
select lpad(count(1),12,'0')||lpad(sum(monto),18,'0')||'0 0'||'R'||'' from dato;
...
...
Spool off;
END;
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #6 (permalink)  
Antiguo 24/08/2006, 08:28
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
Gracias nuevamente. (por enésima vez)
por que no me resulta hacer un procedure con spool??

mira:
create or replace procedure imrimir is
begin
spool C:\rgc\respaldos\infractor\infractor.csv;
select * from imprime;
spool off
end imprimir


me dice:
PLS-00103: Se ha encontrado el símbolo "C" cuando se esperaba uno de los siguientes: := . ( @ % ;


Si me dieras un ejemplo estaria muy agradecido.
Atte
M. González
__________________
Dios es mas grande que tu problema :-)
  #7 (permalink)  
Antiguo 24/08/2006, 09:59
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
El spool solo lo puedes ocupar en el SQL; silo que deseas es crear un procedimiento es mejor que utilices el UTL_FILE

Ejemplo mandando como parametro el path y nombre del archivo

Código:
create or replace procedure miescritura (
  path       in varchar2,
  filename   in varchar2)
is
    output_file  utl_file.file_type;
begin
    output_file := utl_file.fopen (path,filename, 'W');

    utl_file.put_line (output_file, 'mi primera fila escrita');
    utl_file.put_line (output_file, 'mi segunda fila de prueba');
    utl_file.fclose(output_file);
end;
Ojo, recuerda que debes tener creado nombres de directorios con privilegios de lectura, escritura para el usuario que ejecutara el procedimiento:

Código:
create or replace directory dir_temp as 'c:\temp';
ahora supongamos que tienes creado tu directorio y ya le has dado los privilegios... tu consulta la haria algo mas o menos asi:

Código:
Create or Replace Procedure Mytest is
Cursor MyCursor is 
   Select lpad(count(1),12,'0')||lpad(sum(monto),18,'0')||'0 0'||'R'||''  Mydata
   from dato;
MyArchivo varchar2(20) default to_char(sysdate, 'YYYYMMDD');
Begin

   output_file := utl_file.fopen ('dir_temp',MyArchivo, 'W');  
   For j in MyCursor loop
       utl_file.put_line (MyArchivo, j.Mydata);
   End Loop;
   utl_file.fclose(MyArchivo);
End;
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:18.