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

Problema con UTL_TCP.write_line()

Estas en el tema de Problema con UTL_TCP.write_line() en el foro de Oracle en Foros del Web. Hola a todos. Tengo una duda con la instrucción UTL_TCP.write_line y me gustaria saber si alguno de ustedes sabe que es lo que está haciendo ...
  #1 (permalink)  
Antiguo 07/07/2010, 11:59
Avatar de Wayern  
Fecha de Ingreso: septiembre-2008
Ubicación: Aguascalientes
Mensajes: 65
Antigüedad: 15 años, 7 meses
Puntos: 4
Pregunta Problema con UTL_TCP.write_line()

Hola a todos. Tengo una duda con la instrucción UTL_TCP.write_line y me gustaria saber si alguno de ustedes sabe que es lo que está haciendo que me arroje un error.
Este es el código:
Código:
CREATE OR REPLACE PROCEDURE send_shl(dir in varchar2, filename in varchar2,
          ftpdir in varchar2, usr in varchar2, pass in varchar2, to_path in varchar2, command varchar2)
as
l_conn  UTL_TCP.connection;
begin
 l_conn := ftp.login(ftpdir, '21', usr, pass);
  ftp.ascii(p_conn => l_conn);
  --ftp.binary(p_conn => l_conn);
  utl_tcp.write_line(l_conn, command);
  ftp.put(p_conn      => l_conn,
          p_from_dir  => dir,
          p_from_file => filename,
          p_to_file   => to_path||filename);
  ftp.logout(l_conn);

Exception
  When Others then
    rollback;
    RAISE;
End send_shl;
El error que me arroja cuando trato de compilar el procedure es:

PLS-00221: 'WRITE_LINE' is not a procedure or is undefined


Lo que ma hace suponer que lo que está mal es al momento de pasarle los parámetros, pero no sé como van en caso de que esto este causando el error.

Saludos y de antemano gracias.
  #2 (permalink)  
Antiguo 07/07/2010, 15:02
Avatar de Wayern  
Fecha de Ingreso: septiembre-2008
Ubicación: Aguascalientes
Mensajes: 65
Antigüedad: 15 años, 7 meses
Puntos: 4
Exclamación Respuesta: Problema con UTL_TCP.write_line()

Hola de nuevo. Ya encontré la solución y es bastante trivial. Lo que me estaba fallando era que no estaba asignando a ninguna variable el valor regresado. Lo solucioné así:
Código:
CREATE OR REPLACE PROCEDURE send_shl(dir in varchar2, filename in varchar2,
          ftpdir in varchar2, usr in varchar2, pass in varchar2, to_path in varchar2, command varchar2)
as
l_conn  UTL_TCP.connection;
ret_val pls_integer; 

begin
  dbms_output.enable(999999);
 l_conn := ftp.login(ftpdir, '21', usr, pass);
  ftp.ascii(p_conn => l_conn);
  --ftp.binary(p_conn => l_conn);
  ret_val:= utl_tcp.write_line(l_conn, command);
  ftp.put(p_conn      => l_conn,
          p_from_dir  => dir,
          p_from_file => filename,
          p_to_file   => to_path||filename);
  ftp.logout(l_conn);

Exception
  When Others then
    dbms_output.put_line('Value: '||ret_val);
End send_shl;
Ahora el problema que tengo es manejar la excepción al momento de pasar el comando... El error que me manda es normal, lo que no puedo hacer es que despues del error se guarde el archivo en el ftp... Cualquier ayuda se agradecerá mucho. Saludos

Etiquetas: Ninguno
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 20:34.