Oracle - Ejecutar Fichero Unix

 
Vista:

Ejecutar Fichero Unix

Publicado por Cristina (5 intervenciones) el 16/12/2003 15:46:52
Hola.
Me gustaría ejecutar un fichero de unix desde pl/sql.
¿es posible? ¿cómo?. muchas gracias por vuestras respuestas.
Cristina
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ejecutar Fichero Unix

Publicado por Fran. (11 intervenciones) el 17/12/2003 09:19:47
Hola, otra vez, creo.
Conseguiste imprimir por la impresora desde UNIX?.
Sí es posible hacerlo, hay dos métodos, el primero es utilizando tuberias, es decir, el paquete dbms_pipe, el funcionamiento basico es que desde el pl/sql escribes en la tuberia y despues desde un shel-script de unix que contenga un cuble infinito lees de la misma y realizas la acción que hayas decidido al insertar en la tuberia. La seguna opción opción es más adecuada para mi gusto, como requisito tienes que tener java configurado en la base de datos, de éste no hago comentarios te adjunto ejemplo directamente, si tienes más dudas mandame un e-mail y te las aclaro.

Un saludo, Fran.

type tp_array_cad is varray(1000) of varchar2(1000)

create or replace procedure P_rexec ( host in varchar2,
usuario in varchar2,
password in varchar2,
comando in varchar2,
resp_w OUT sct.tp_array_cad ) is

c utl_tcp.connection; -- TCP/IP connection
a number;
cadena_w varchar2(1000);
i number;

BEGIN
resp_w := sct.tp_array_cad(); /* Inicializar el array de retorno */
i := 0;

c := utl_tcp.open_connection(host, 512); -- open connection al puerto 512
a := utl_tcp.write_line(c,
(chr(0)||usuario||chr(0)||password||chr(0)||comando||chr(0)));

-- monto el comando, pasandole usuario, password y comando a ejecutar

a := utl_tcp.write_line(c);
BEGIN
LOOP
cadena_w := utl_tcp.get_line(c, TRUE); -- read result
i := i + 1;
resp_w.extend;
resp_w(i) := cadena_w;

END LOOP;
EXCEPTION
WHEN utl_tcp.end_of_input THEN
NULL;
END;
utl_tcp.close_connection(c);
END P_rexec;
/

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar