Re: [oracle_br] Re: Oracle Database 12c consumindo Web Services

2017-06-13 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Blz, é isso aí... Só para mostrar que as instruções em si estão 100% corretas, 
segue o teste que fiz numa VM com 12cR2 (a Developer´s Day que vc baixa em 
technet.oracle.com), que já vem com APEX instalado num PDB como é necessário, e 
no exemplo estou conectado como SYS nesse PDB
 NEM PRECISO DIZER, eu Não tenho nem Antivírus Nem firewall nem nada assim 
bloqueando meu acesso à internet... O exemplo  :

==> o APEX tá instalado :

SQL> SELECT username,
   account_status,
   TO_CHAR(lock_date, 'DD-MON-') AS lock_date,
   TO_CHAR(expiry_date, 'DD-MON-') AS expiry_date,
   default_tablespace,
   temporary_tablespace
FROM   dba_users
WHERE  username LIKE UPPER('%APEX%')
ORDER BY username;  23456789  

USERNAME

ACCOUNT_STATUS LOCK_DATE  EXPIRY_DATE
  
DEFAULT_TABLESPACE   TEMPORARY_TABLESPACE
-- --
APEX_050100
OPEN
SYSAUX   TEMP

APEX_INSTANCE_ADMIN_USER
EXPIRED   02-MAR-2017
USERS   TEMP

USERNAME

ACCOUNT_STATUS LOCK_DATE  EXPIRY_DATE
  
DEFAULT_TABLESPACE   TEMPORARY_TABLESPACE
-- --

APEX_LISTENER
OPEN
USERS   TEMP

APEX_PUBLIC_USER
OPEN

==> vou criar um ACL, obviamente já usando a sintaxe 12c :

SQL> ed
Wrote file afiedt.buf

  1  BEGIN
  2DBMS_NETWORK_ACL_ADMIN.append_host_ace (
  3 host=> 'oracle-base.com',
  4 lower_port => 80,
  5 upper_port => 80,
  6 ace=> xs$ace_type(privilege_list => xs$name_list('http'),
  7   principal_name => 'APEX_050100',
  8   principal_type => xs_acl.ptype_db));
  9* END;
SQL> /

PL/SQL procedure successfully completed.

==> crio a função que consome o web service de demonstração lá do ORACLE_BASE , 
que nem ele mostrou :

SQL> CREATE OR REPLACE FUNCTION add_numbers (p_int_1  IN  NUMBER,
p_int_2  IN  NUMBER)
  RETURN NUMBER
AS
  l_envelope  CLOB;
  l_xml   XMLTYPE;
  l_resultVARCHAR2(32767);
BEGIN

  -- Build a SOAP document appropriate for the web service.
  l_envelope := '
http://schemas.xmlsoap.org/soap/envelope/;
  xmlns:tns="http://www.ignyte.com/whatsshowing;
  xmlns:xs="http://www.w3.org/2001/XMLSchema;>
  
http://oracle-base.com/webservices/; 
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/;>
  ' || p_int_1 || '
  ' || p_int_2 || '

  
';

  -- Get the XML response from the web service.
  l_xml := APEX_WEB_SERVICE.make_request(
p_url  => 'http://oracle-base.com/webservices/server.php',
p_action   => 'http://oracle-base.com/webservices/server.php/ws_add',
p_envelope => l_envelope
  );

  -- Display the whole SOAP document returned.
  DBMS_OUTPUT.put_line('l_xml=' || l_xml.getClobVal());

  -- Pull out the specific value of interest.
  l_result := APEX_WEB_SERVICE.parse_xml(
p_xml   => l_xml,
p_xpath => '//return/text()',
p_ns=> 'xmlns:ns1="http://oracle-base.com/webservices/;'
  );

  DBMS_OUTPUT.put_line('l_result=' || l_result);

  RETURN TO_NUMBER(l_result);
END;
/  23456789   10   11   12   13   14   15   16   17 
  18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33 
  34   35   36   37   38   39   40   41   42   43   44  

Function created.


===> Antes que vc pergunte, como estou copiando e colando no sqlplus executando 
via terminal, ele desposiciona os números de linha, ignore isso Vou 
executar a função :

SQL> SELECT add_numbers(1, 5) FROM dual;

ADD_NUMBERS(1,5)

   6

==> okdoc, funfa certinho Vou meter um SERVEROUTPUT, que nem ele sugere na 
página, para debug/demonstração :


SQL> SET SERVEROUTPUT ON
SELECT add_numbers(1, 5) FROM dual; 
  2  
SQL> 
SQL> l
  1* SELECT add_numbers(1, 5) FROM
SQL> a  dual;
  1* SELECT add_numbers(1, 5) FROM dual
SQL> /

ADD_NUMBERS(1,5)

   6

l_xml=http://schemas.xmlsoap.org/soap/encoding/; 
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/;
xmlns:xsd="http://www.w3.org/2001/XMLSchema; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance;
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/;>http://oracle-base.com/webservices/;>6
 

l_result=6
SQL> 


Blz ??? 

[]s

  Chiappa

Re: [oracle_br] Re: Oracle Database 12c consumindo Web Services

2017-06-13 Por tôpico Diego Melo diegopm...@gmail.com [oracle_br]
Opa Chiappa,
Valeu pela resposta.

Sim, o APEX está instalado no meu servidor. Estou usando o Oracle12c e
instalei a versão mais nova do APEX também (APEX_050100)

Vou testar as funcionalidades dele conforme os links mencionados.

Valeu 

Diego

2017-06-13 11:55 GMT-04:00 jlchia...@yahoo.com.br [oracle_br] <
oracle_br@yahoogrupos.com.br>:

>
>
> Bom, primeiro vc *** ENTENDEU  que o exemplo lá do oracle-base é SÓ UM
> EXEMPLO, vc ** TEM ** que ADAPTAR ELE para o seu ambiente, né ?  Sendo
> assim, vc ** CONFIRMOU ** que vc tem APEX instalado E QUE o usuário do APEX
> é esse tal usuário APEX_040200  ÓBVIO ULULANTE, se teu usuário APEX é
> outro, OU PIOR, se vc Não Tem o APEX instalado, ÓBVIO que não funfa
>  No meu 12cR2, por exemplo, eu fiz a instalação padrão default e *** Não
> Veio *** o APEX instalado :
>
>  C:\Users\jlchi_000>sqlplus system/oracle
>
> SQL*Plus: Release 12.2.0.1.0 Production on Ter Jun 13 10:46:36 2017
>
> Copyright (c) 1982, 2016, Oracle.  All rights reserved.
>
> Horário do último log-in bem-sucedido: Seg Jun 12 2017 18:37:50 -03:00
>
> Conectado a:
> Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit
> Production
>
> SQL> select username from dba_users where username like 'APEX%';
>
> não há linhas selecionadas
>
> SQL>
>
> Sm Aliás, essa verificação é a PRIMEIRA COISA que o Autor pede pra
> vc fazer lá na página que vc está seguindo
>
> Uma vez Confirmado que vc tem APEX instalado e configurado OK (e com a
> ressalva que iirc no 12cR2 o APEX ** tem ** que estar instalado num
> PDB/Pluggable Database, e NÃO mais no root db/container database), aí então
> a ** SEGUNDA ** coisa é proceder de acordo com a versão : a mesma página
> que vc indicou nos Lembra que a sintaxe e o procedimento de criar um ACL
> mudou no 12cR2 : se é 12c que vc está usando, PLEASE siga as instruções de
> criação de ACL NO 12c
>
> []s
>
>   Chiappa
>
> OBS : para poder usar as rotinas do APEX, Obviamente o APEX deve estar
> totalmente funcional - para comprovar isso, seria Muito Interessante vc
> criar uma aplicação tipo hello world, um demozinho com ele, só pra
> Confirmar que o APEX em si está presente : tem umas em
> http://o7planning.org/en/10345/oracle-apex-tutorial-for-beginners (bem
> mastigadinha mesmo), em  http://www.oracle.com/webfolder/technetwork/
> tutorials/obe/db/devdays2012/apexp1_lab/apexp1_lab.html e
> https://stackoverflow.com/documentation/oracle-apex/
> 2759/getting-started-with-oracle-apex e http://www.oracle.com/
> webfolder/technetwork/tutorials/obe/db/apex/r50/apex-basic-demo-projects-
> 2848024/APEX_Basic_Demo_Projects%20v2.0.5.html 
> 
>