RES: [oracle_br] Re: Criptografia EAS 128 com Base64 no Oracle 11g

2017-05-09 Por tôpico Carlos Cesar Aparecido Da Silva carlos.sil...@jbsfoods.com.br [oracle_br]
Boa tarde, Camila!
Da uma olhada nessa função, se te ajuda.


function assinaturaBase64 ( i_url   in varchar2,
 i_chave in varchar2,
 i_namespace in varchar2,
 i_ds_assin varchar2,
 io_errcode  in out number,
 io_errtext  in out varchar2 ) return varchar2 is

   w_chave_src   varchar2(100) := i_chave;
   w_chave_b64   varchar2(100) := translate ( w_chave_src, '-_', 
'+/' );
   w_chave_bin   raw(2000);
   w_url varchar2(100) := utl_url.escape ( i_url );
   w_ass_mac raw(2000);
   w_base64_ass_mac  varchar2(2000);
   w_base64_ass_mac_altervarchar2(2000);
   w_programavarchar2(50);
   w_acaovarchar2(50);

begin
   --
   w_chave_bin:= utl_encode.base64_decode ( utl_i18n.string_to_raw 
( w_chave_b64, 'AL32UTF8' ) );
   w_ass_mac  := dbms_crypto.mac ( utl_i18n.string_to_raw ( w_url, 
'AL32UTF8'),
   dbms_crypto.hmac_sh1, 
w_chave_bin );
   w_base64_ass_mac   := utl_raw.cast_to_varchar2 ( 
UTL_ENCODE.base64_encode ( w_ass_mac ) );
   w_base64_ass_mac_alter := translate ( w_base64_ass_mac, '+/', '-_' );
  --
   return i_namespace || i_url || i_ds_ass || w_base64_ass_mac_alter;
exception
   when others then
io_errcode := sqlcode;
io_errtext := 'Gerar_assinatura: '||sqlerrm;
return '';
end;










De: 
sentto-1682896-121823-1494361138-carlos.silva3=jbsfoods.com...@returns.groups.yahoo.com
 
[mailto:sentto-1682896-121823-1494361138-carlos.silva3=jbsfoods.com...@returns.groups.yahoo.com]
 Em nome de camilal...@yahoo.com.br [oracle_br]
Enviada em: terça-feira, 9 de maio de 2017 17:19
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Criptografia EAS 128 com Base64 no Oracle 11g



Boa tarde Chiappa,

vou tentar explicar melhor. É o seguinte, eu tenho um chave em Base64 que tenho 
que utilizar para criptografar e descriptografar informações.
Essas funções serão utilizadas na chamadas de serviços web para fazer a 
comunicação entre o meu sistema Oracle e um outro sistema Web.
O sistema web possui também rotinas para criptografar e descriptografar, e o 
meu sistema devera também possuir as mesmas funções. A chave utilizada pelos 
dois sistemas também sera a mesma.

No sistema web estão utilizando da seguinte forma:

public String cifrar(String textoOriginal, String chave) throws 
CriptografiaException {
try {
byte[] original = textoOriginal.getBytes("UTF-8");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, gerarChave(chave));
byte[] cifrada = cipher.doFinal(original);
byte[] retorno = Base64.encodeBase64(cifrada);
return new String(retorno);
} catch (UnsupportedEncodingException | NoSuchAlgorithmException | 
NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException | 
BadPaddingException ex) {
throw new CriptografiaException(ex);
}
}

public String decifrar(String textoCifrado, String chave) throws 
CriptografiaException {
try {
byte[] cifrado = Base64.decodeBase64(textoCifrado.getBytes());
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, gerarChave(chave));
byte[] decifrado = cipher.doFinal(cifrado);
return new String(decifrado, "UTF-8");
} catch (UnsupportedEncodingException | NoSuchAlgorithmException | 
NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException | 
BadPaddingException ex) {
throw new CriptografiaException(ex);
}
}

Eu preciso criar as mesmas funções no Oracle 11g. No exemplo abaixo, eu tentei 
utilizar assim:

Os valores de G_STRING e P_VAL estavam em Base64 que eu transformei em  RAW:
G_STRING :=utl_raw.cast_to_raw('chave em base64');
-- RAW PARA BASE64
G_STRING := utl_encode.base64_encode(G_STRING);

P_VAL :=utl_raw.cast_to_raw('Informação criptografada em EAS convertida em 
Base64');
-- RAW PARA BASE64
P_VAL := utl_encode.base64_encode(P_VAL);

Para criar minha função para descriptografar a informação que recebi do sistema 
web, eu fiz da seguinte forma:

 DECLARE
G_CHARACTER_SET VARCHAR2(10) := 'AL32UTF8';
G_STRING RAW(32767) := 'EF5674A75A3EE327EC319B9F5C5BBE8B';
G_KEY RAW(250) := utl_i18n.string_to_raw
  ( data => G_STRING,
  dst_charset => G_CHARACTER_SET );
G_ENCRYPTION_TYPE PLS_INTEGER := dbms_crypto.encrypt_aes256
 + dbms_crypto.chain_cbc
 + dbms_crypto.pad_pkcs5;

l_decrypted RAW(32);
l_decrypted_string VARCHAR2(32);

p_val RAW(32767) := 

[oracle_br] RES: Erro ao usar Post Forms Builder 6i - ORA-12203:TNS:unable to connect to destination[RESOLVIDO]

2016-08-23 Por tôpico Carlos Cesar Aparecido Da Silva carlos.sil...@jbsfoods.com.br [oracle_br]
Alterei meu bloco na propriedade "Update Changed Columns Only" para "YES".

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
Enviada em: terça-feira, 23 de agosto de 2016 16:13
Para: oracle_br@yahoogrupos.com.br
Assunto: [** SPAM 6.3 **] [oracle_br] Erro ao usar Post Forms Builder 6i - 
ORA-12203:TNS:unable to connect to destination


Boa tarde, Pessoal!
Tivemos uma migração recentemente, e uma tela(desenvolvida em Forms Builder 6i) 
que utiliza POST esta perdendo a conexão, sempre que o comando é chamado.
Alguém já pegou algo do tipo ???

Forms  6i
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
PL/SQL Release 10.2.0.5.0 - Production

ORA-12203:TNS:unable to connect to destination

Att;



[oracle_br] Erro ao usar Post Forms Builder 6i - ORA-12203:TNS:unable to connect to destination

2016-08-23 Por tôpico Carlos Cesar Aparecido Da Silva carlos.sil...@jbsfoods.com.br [oracle_br]
Boa tarde, Pessoal!
Tivemos uma migração recentemente, e uma tela(desenvolvida em Forms Builder 6i) 
que utiliza POST esta perdendo a conexão, sempre que o comando é chamado.
Alguém já pegou algo do tipo ???

Forms  6i
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
PL/SQL Release 10.2.0.5.0 - Production

ORA-12203:TNS:unable to connect to destination

Att;


[oracle_br] Duvida calculo de performance de query

2016-08-09 Por tôpico Carlos Cesar Aparecido Da Silva carlos.sil...@jbsfoods.com.br [oracle_br]
Bom dia!
 Existe algum calculo de performance de query, que eu consiga realizar para 
saber se o problema esta na minha instrução Sql ou no banco?

Att?


[oracle_br] Lentidão de acesso a procedure no Oracle Forms Builder.

2016-03-10 Por tôpico Carlos Cesar Aparecido Da Silva carlos.sil...@jbsfoods.com.br [oracle_br]
Boa tarde pessoal!

  Alguém já pegou  lentidão de acesso de procedure no Oracle Forms Builder 
6i?
  Criei uma procedure dentro da tela.
  Quando chamo a mesma ele demora para acessar essa rotina.

Obrigado,



RES: [oracle_br] Como usar Webservice no oracle

2016-02-29 Por tôpico Carlos Cesar Aparecido Da Silva carlos.sil...@jbsfoods.com.br [oracle_br]
Bom dia, Junior!

   Da uma olhada se os Headers estão sendo preenchidos corretamente.

Att;

2016-02-27 15:52 GMT-04:00 Junior 
roberjr_...@yahoo.com.br [oracle_br] 
>:

Boa tarde!

Fiz a minha procedure utilizando essa como exemplo.
O erro que tem me retornado o webservice é que os dados de entrada não foram 
encontrados.
A empresa disse que o xml que estou enviando está chegando em branco para eles.

A variável soap_request eu define como clob. Será que pode ser esse o problema ?
Ou seria outra coisa que preciso verificar ?

Desde já agradeço


--To Keep server output parameter on
set serveroutput on;--declaration
  declare

  soap_request varchar2(3);
  soap_respond varchar2(3);
  http_req utl_http.req;
  http_resp utl_http.resp;

--PL/SQL procedure
  begin--Webservice request schema
  soap_request:= '
  http://schemas.xmlsoap.org/soap/envelope/;
 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance;
   
xmlns:xsd="http://www.w3.org/2001/XMLSchema; 
xmlns:tns="http://www.webserviceX.NET/;>
  

  USD
  INR

   
  ';-- Set proxy details if no direct net connection.
  --HTTP request
  http_req:= utl_http.begin_request( 
'http://209.162.186.60:80/CurrencyConvertor.asmx'
 , 'POST' , 'HTTP/1.1');--set authentication
utl_http.set_header(http_req, 'Content-Type', 'text/xml; charset=utf-8');
  utl_http.set_header(http_req, 'Content-Length', length(soap_request));
  utl_http.set_header(http_req, 'SOAPAction', 
'http://www.webserviceX.NET/ConversionRate');
  utl_http.write_text(http_req, soap_request);
  http_resp:= utl_http.get_response(http_req);
  utl_http.read_text(http_resp, soap_respond);
  utl_http.end_response(http_resp);
  dbms_output.put_line(soap_respond);  end;
/

Em Sábado, 20 de Fevereiro de 2016 17:09, "Carlos Silva 
carlos-csi...@hotmail.com [oracle_br]" 
> escreveu:


Boa tarde!

Segue dois exemplos de como você pode criar sua rotina.

http://www.oratable.com/utl_http/

http://wiki.scn.sap.com/wiki/display/XI/Triggering+webservice+from+Oracle+Database+with+UTL_HTTP+supplied+package



To: oracle_br@yahoogrupos.com.br
From: oracle_br@yahoogrupos.com.br
Date: Sat, 20 Feb 2016 12:53:21 +
Subject: [oracle_br] Como usar Webservice no oracle



Bom dia Pessoal.

Estou tentando usar Webservice no oracle.

A idéia é consumir um arquivo xml via webservice. Pesquisei algumas coisas na 
internet porém está dando erro.

Alguém teria algum exemplo ou se preciso configurar alguma coisa para poder 
utilizar o webservice ?

Obrigado.






RES: [** SPAM 8.1 **] Re: [** SPAM 7.4 **] [oracle_br] Re: Problema com o utl_http. Erro: ORA-12541: TNS:no listener

2015-12-14 Por tôpico Carlos Cesar Aparecido da Silva carlos.sil...@jbsfoods.com.br [oracle_br]
Resolvido, pessoal.
Era o DNS do nosso servidor de desenvolvimento que não estava atualizando.
Ele mantinha o mesmo IP, mesmo quando o firewall era atualizado pela minha 
aplicação.


De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
Enviada em: segunda-feira, 14 de dezembro de 2015 10:28
Para: oracle_br@yahoogrupos.com.br
Assunto: [** SPAM 8.1 **] Re: [** SPAM 7.4 **] [oracle_br] Re: Problema com o 
utl_http. Erro: ORA-12541: TNS:no listener



Será que o nome da URL de acordo com o os IPs passados ?
Vocês tem que chegar a um consenso e trabalha de uma unica forma.  Nome, amanhã 
alguem muda o ip equivalente no DNS, nao te falam nada e seu sistema cai por 
terra.  Porque o mesmo deixaria de bater com o IP que liberaram no firewall, 
proxy, etc.  Endereço IP é sempre o mesmo endereço IP. O pior quando é um load 
balance.. como controlar isso com um bd..


2015-12-11 18:33 GMT-02:00 Carlos Cesar Aparecido da Silva 
carlos.sil...@jbsfoods.com.br [oracle_br] 
>:


Chiappa,

Estou utilizando esse mesmo modelo de webservice que você enviou.
Ele já funciona legal para outros links. Esse atual é que estou tendo problemas.
Não sei se ajuda: Foi nos passado uma lista de Ranges de IP para liberar o 
acesso, mas liberamos o acesso da rede pelo nome da URL.
E ele envia e recebe informações por alguns minutos ... e depois não 
conseguimos enviar mais nada  e depois de alguns minutos volta ...

Att;


[Descrição: Descrição: Descrição: Descrição: ass]

Carlos Silva

• JBS S/A - Anhanguera
i Sistemas Comerciais ME - JBS Foods
• 
carlos.sil...@jbsfoods.com.br>



Av. Marginal Direita do Tietê, 500
Vila Jaguará - São Paulo – SP
CEP- 05118-100
Fone: 55 11 3144-5462
www.jbs.com.br



De: oracle_br@yahoogrupos.com.br 
[mailto:oracle_br@yahoogrupos.com.br]
Enviada em: sexta-feira, 11 de dezembro de 2015 18:22
Para: oracle_br@yahoogrupos.com.br
Assunto: [** SPAM 7.4 **] [oracle_br] Re: Problema com o utl_http. Erro: 
ORA-12541: TNS:no listener



Opa : então, a primeira coisa (que é crítica) e que vc não nos dá é a VERSÃO 
EXATA (e a Edição !!) do banco Oracle em questão - isso *** principalmente *** 
para comprovar que vc não está caindo na segurança de rede melhorada 
introduzida no 11g, o 11g passou a exigir um item de controle acicional, os 
ACLs (Access Control Lists) para QUALQUER tipo de acesso via rede à itens 
externos, seja pelas packages de mail, pela UTL_HTTP, pela UTL_INADDR... Isso é 
ABSOLUTAMENTE Crítico, repito : se vc estiver em banco 11g ou acima, sem setar 
os ACLs necessários vc NÃO TERÁ absolutamente nenhuma comunicação via rede
Veja 
http://www.oracleflash.com/36/Oracle-11g-Access-Control-List-for-External-Network-Services.html
 para mais refs sobre o Assuntos.

Isso estando 100% verificado e OK, aí temos : não, o RDBMS Oracle  não tem 
*** capacidade de acessar uma "página web" , ele Não Tem um browser interno, 
Não Tem Como o RDBMS "executar"uma página web... E já que ele não tem essa 
capacidade, o que ele pode receber de um website qualquer é ou uma string com o 
texto todo da página web (veja 
http://www.gokhanatil.com/2013/06/how-to-read-web-pages-using-utl_http-request_pieces.html)
 OU vc pode acionar um webservice (NÃO É que a página vai ser aberta num 
browser, não é isso, vc estará acessando diretamente, em modo não-interativo e 
FORA do browser, o webservice) que vai transmitir strings, é isso , 
http://www.sqlquery.com/dbm0415.htm exemplifica...

[]s

Chiappa

OBS : vc perguntou de UTL_HTTP, e foi isso que respondemos - fique Claro que 
existem Várias Outras maneiras de se chamar um webservice a partir do database, 
como por exemplo usar JAVA - desde a versão 8i é opcional vc ter uma JVM dentro 
do banco, mas é possível, 
http://www.oracle.com/technetwork/developer-tools/jdev/dbcalloutws-howto-084195.html
 exemplifica, OU vc pode (do database 10g em diante) usar o UTL_DBWS (que 
basicamente é uma rotina JAVA que aciona métodos SOAP do seu webservice, SE ele 
foi assim programado/preparado), 
https://oracle-base.com/articles/10g/utl_dbws-10g exemplifica, OU a partir do 
11g vc tem o NDWS 
(http://www.liberidu.com/blog/2009/07/14/howto-consume-webservices-via-plsql/ 
exemplifica) , OU ainda (o que pode ser uma opção interessante, também, se vc 
tem o APEX instalado no seu database Oracle - alguns releases/edições o trazem 
instalado após uma instalação default, e outros exigem instalação extra) seria 
usar o built-in APEX chamado APEX_WEB_SERVICE , 
https://oracle-base.com/articles/misc/apex_web_service-consuming-soap-and-rest-web-services
 exemplifica


[As partes 

[oracle_br] Problema com o utl_http. Erro: ORA-12541: TNS:no listener

2015-12-11 Por tôpico Carlos Cesar Aparecido da Silva carlos.sil...@jbsfoods.com.br [oracle_br]
Boa tarde, pessoal!

 Tenho um serviço WEB no qual, processo um método POST.
 Nossa equipe de rede já liberou o acesso pela pagina desse serviço e 
assim não tendo mais o bloqueio de proxy.
 Quando processo minha rotina, algumas requisições vai e outras não.
 Alguém sabe me informar como é feito esse serviço pelo banco 
 Se o banco envia mesmo a pagina para executar a saída ou se utiliza o 
IP ...
 Pergunto isso pq algumas requisições passa com o tipo de liberação já 
realizada  pela pagina . Será que teria que ser feito pelo IP?

Att;



RES: [** SPAM 7.4 **] [oracle_br] Re: Problema com o utl_http. Erro: ORA-12541: TNS:no listener

2015-12-11 Por tôpico Carlos Cesar Aparecido da Silva carlos.sil...@jbsfoods.com.br [oracle_br]
Foi mal.

Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
PL/SQL Release 10.2.0.5.0 - Production
CORE  10.2.0.5.0  Production
TNS for HPUX: Version 10.2.0.5.0 - Production
NLSRTL Version 10.2.0.5.0 - Production


De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br]
Enviada em: sexta-feira, 11 de dezembro de 2015 18:22
Para: oracle_br@yahoogrupos.com.br
Assunto: [** SPAM 7.4 **] [oracle_br] Re: Problema com o utl_http. Erro: 
ORA-12541: TNS:no listener



Opa : então, a primeira coisa (que é crítica) e que vc não nos dá é a VERSÃO 
EXATA (e a Edição !!) do banco Oracle em questão - isso *** principalmente *** 
para comprovar que vc não está caindo na segurança de rede melhorada 
introduzida no 11g, o 11g passou a exigir um item de controle acicional, os 
ACLs (Access Control Lists) para QUALQUER tipo de acesso via rede à itens 
externos, seja pelas packages de mail, pela UTL_HTTP, pela UTL_INADDR... Isso é 
ABSOLUTAMENTE Crítico, repito : se vc estiver em banco 11g ou acima, sem setar 
os ACLs necessários vc NÃO TERÁ absolutamente nenhuma comunicação via rede
Veja 
http://www.oracleflash.com/36/Oracle-11g-Access-Control-List-for-External-Network-Services.html
 para mais refs sobre o Assuntos.

 Isso estando 100% verificado e OK, aí temos : não, o RDBMS Oracle  não tem 
*** capacidade de acessar uma "página web" , ele Não Tem um browser interno, 
Não Tem Como o RDBMS "executar"uma página web... E já que ele não tem essa 
capacidade, o que ele pode receber de um website qualquer é ou uma string com o 
texto todo da página web (veja 
http://www.gokhanatil.com/2013/06/how-to-read-web-pages-using-utl_http-request_pieces.html)
 OU vc pode acionar um webservice (NÃO É que a página vai ser aberta num 
browser, não é isso, vc estará acessando diretamente, em modo não-interativo e 
FORA do browser, o webservice) que vai transmitir strings, é isso , 
http://www.sqlquery.com/dbm0415.htm exemplifica...

  []s

Chiappa

OBS :  vc perguntou de UTL_HTTP, e foi isso que respondemos - fique Claro que 
existem Várias Outras maneiras de se chamar um webservice a partir do database, 
como por exemplo usar JAVA - desde a versão 8i é opcional vc ter uma JVM dentro 
do banco, mas é possível, 
http://www.oracle.com/technetwork/developer-tools/jdev/dbcalloutws-howto-084195.html
 exemplifica, OU vc pode (do database 10g em diante) usar o UTL_DBWS (que 
basicamente é uma rotina JAVA que aciona métodos SOAP do seu webservice, SE ele 
foi assim programado/preparado), 
https://oracle-base.com/articles/10g/utl_dbws-10g exemplifica, OU a partir do 
11g vc tem o NDWS 
(http://www.liberidu.com/blog/2009/07/14/howto-consume-webservices-via-plsql/ 
exemplifica) , OU ainda (o que pode ser uma opção interessante, também, se vc 
tem o APEX instalado no seu database Oracle - alguns releases/edições o trazem 
instalado após uma instalação default, e outros exigem instalação extra) seria 
usar o built-in APEX chamado APEX_WEB_SERVICE , 
https://oracle-base.com/articles/misc/apex_web_service-consuming-soap-and-rest-web-services
 exemplifica