Mestres estou com um grande problema
Meu sistema precisa se comunicar com um display eletrônico de senha e consultório. Aqueles que tem nas recepções de hospitais.
Preciso criar uma conexão tcp/ip com host/porta: 192.1.3.180/4000
enviando dados de número e consultório
Hoje está feito em java utilizando socket e precisamos colocar isso em uma procedure no forms.
SQL> desc utl_tcp
Element Type
------------------------------ ---------
CONNECTION TYPE
CRLF VARIABLE
BUFFER_TOO_SMALL EXCEPTION
END_OF_INPUT EXCEPTION
NETWORK_ERROR EXCEPTION
BAD_ARGUMENT EXCEPTION
PARTIAL_MULTIBYTE_CHAR EXCEPTION
TRANSFER_TIMEOUT EXCEPTION
BUFFER_TOO_SMALL_ERRCODE CONSTANT
END_OF_INPUT_ERRCODE CONSTANT
NETWORK_ERROR_ERRCODE CONSTANT
BAD_ARGUMENT_ERRCODE CONSTANT
PARTIAL_MULTIBYTE_CHAR_ERRCODE CONSTANT
TRANSFER_TIMEOUT_ERRCODE CONSTANT
OPEN_CONNECTION FUNCTION
AVAILABLE FUNCTION
READ_RAW FUNCTION
WRITE_RAW FUNCTION
READ_TEXT FUNCTION
WRITE_TEXT FUNCTION
READ_LINE FUNCTION
WRITE_LINE FUNCTION
GET_RAW FUNCTION
GET_TEXT FUNCTION
GET_LINE FUNCTION
GET_TEXT_NCHAR FUNCTION
GET_LINE_NCHAR FUNCTION
FLUSH PROCEDURE
CLOSE_CONNECTION PROCEDURE
CLOSE_ALL_CONNECTIONS PROCEDURE
SQL>
Eis um exemplo: (se conecta num web-server e pega o primeiro documento que abrir)
DECLARE
c utl_tcp.connection; -- TCP/IP connection to the Web server
ret_val pls_integer;
BEGIN
c := utl_tcp.open_connection(remote_host => 'www.acme.com',
remote_port => 80,
charset => 'US7ASCII'); -- open connection
ret_val := utl_tcp.write_line(c, 'GET / HTTP/1.0'); -- send HTTP request
ret_val := utl_tcp.write_line(c);
BEGIN
LOOP
dbms_output.put_line(utl_tcp.get_line(c, TRUE)); -- read result
END LOOP;
EXCEPTION
WHEN utl_tcp.end_of_input THEN
NULL; -- end of input
END;
utl_tcp.close_connection(c);
END;
Também existe a possibilidade de fazer uma JAVA STORED PROCEDURE que faz o serviço. (aqui no forum tem alguns exemplos disso).
declare
c utl_tcp.connection; -- TCP/IP connection to the Web server
x pls_integer;
BEGIN
c := utl_tcp.open_connection('192.1.3.180', 4000); -- open connection
x := utl_tcp.write_line(c, '!#'||chr(9)||chr(9)||chr(1)||chr(4)||chr(4)||'.'); -- send HTTP request
--A linha acima envia os numeros do consultório e a senha
x := utl_tcp.write_line(c);
utl_tcp.close_connection(c);
exception
when others then
message(sqlerrm);
END;
Agradeço, se me ajudarem, estou farto de procurar e não encontro forma de solucionar o meu problema:
Tenho um ficheiro que quero enviar diariamento para um endereço http
porta 80 do servidor da base de dados para um site .