7
8/9/2019 Oracle XE 11g R2 http://slidepdf.com/reader/full/oracle-xe-11g-r2 1/7  [email protected] [email protected] | (55)479668-8829 Oracle XE 11g R2 / Oracle 11g R2 Desde a introdução do XML DB em Oracle 9i Release 2, o servidor Oracle tem continha um servidor HTTP embutido, além do servidor Apache HTTP. No Oracle 10g Release 2 este servidor HTTP pode ser usado como uma porta de entrada embutido PL / SQL para executar aplicações PL / SQL via mod_plsql. A Administração de Descritores De Acesso banco de dados (DADS) para o XML do servidor HTTP DB é realizada utilizando o pacote DBMS_EPG. Este artigo vou apresentar um exemplo simples de seu uso. Vamos ativar o ambiente para criação de páginas html/php/css  via PL/SQL. Configuração básica Em primeiro lugar temos de garantir que temos acesso ao esquema de exemplo< TAMIS> e o esquema XDB. CONN sys/”informar a senha” AS SYSDBA -- Criar esquema <TAMIS> se você ainda não o tem. @ C:\app\Electron\product\11.2.0\client_1\rdbms\admin\utlsampl.sql @C:\app\Administrador\product\11.2.0\dbhome_1\RDBMS\ADMIN\utlsampl.sql ALTER USER TAMIS IDENTIFIED BY tamis221204 ACCOUNT UNLOCK; Em seguida, usamos o procedimento CREATE_DAD para criar um descritor de acesso ao banco com um caminho virtual associada. BEGIN DBMS_EPG.create_dad ( dad_name => 'epg_dad', -- trocar por tamis path => '/epg_dad/*'); -- trocar por tamis END; Os mapeamentos atuais para um DAD específicos podem ser recuperadas usando o procedimento get_all_dad_mappings. SET SERVEROUTPUT ON SIZE UNLIMITED DECLARE l_paths DBMS_EPG.varchar2_table; BEGIN DBMS_EPG.get_all_dad_mappings ( dad_name => 'epg_dad', paths => l_paths); DBMS_OUTPUT.put_line('Mappings'); DBMS_OUTPUT.put_line('========'); FOR i IN 1 .. l_paths.count LOOP DBMS_OUTPUT.put_line(l_paths(i)); END LOOP; END; Os mapeamentos associados com DADs existentes pode ser alterado, utilizando os procedimentos e UNMAP_DAD MAP_DAD.

Oracle XE 11g R2

Embed Size (px)

Citation preview

Page 1: Oracle XE 11g R2

8/9/2019 Oracle XE 11g R2

http://slidepdf.com/reader/full/oracle-xe-11g-r2 1/7

 

[email protected] |  [email protected] | (55)479668-8829 

Oracle XE 11g R2 / Oracle 11g R2

Desde a introdução do XML DB em Oracle 9i Release 2, o servidor Oracle tem continha um

servidor HTTP embutido, além do servidor Apache HTTP. No Oracle 10g Release 2 este servidor HTTP

pode ser usado como uma porta de entrada embutido PL / SQL para executar aplicações PL / SQL viamod_plsql. A Administração de Descritores De Acesso banco de dados (DADS) para o XML do servidor

HTTP DB é realizada utilizando o pacote DBMS_EPG. Este artigo vou apresentar um exemplo simples

de seu uso. Vamos ativar o ambiente para criação de páginas html/php/css via PL/SQL.

Configuração básica 

Em primeiro lugar temos de garantir que temos acesso ao esquema de exemplo< TAMIS> e o

esquema XDB.

CONN sys/”informar a senha” AS SYSDBA 

-- Criar esquema <TAMIS> se você ainda não o tem.@ C:\app\Electron\product\11.2.0\client_1\rdbms\admin\utlsampl.sql@C:\app\Administrador\product\11.2.0\dbhome_1\RDBMS\ADMIN\utlsampl.sqlALTER USER TAMIS IDENTIFIED BY tamis221204 ACCOUNT UNLOCK;

Em seguida, usamos o procedimento CREATE_DAD para criar um descritor de acesso ao banco

com um caminho virtual associada.

BEGINDBMS_EPG.create_dad (

dad_name => 'epg_dad', -- trocar por tamispath => '/epg_dad/*'); -- trocar por tamis

END;

Os mapeamentos atuais para um DAD específicos podem ser recuperadas usando o

procedimento get_all_dad_mappings.

SET SERVEROUTPUT ON SIZE UNLIMITEDDECLAREl_paths DBMS_EPG.varchar2_table;

BEGINDBMS_EPG.get_all_dad_mappings (

dad_name => 'epg_dad',paths => l_paths);

DBMS_OUTPUT.put_line('Mappings');DBMS_OUTPUT.put_line('========');FOR i IN 1 .. l_paths.count LOOP

DBMS_OUTPUT.put_line(l_paths(i));END LOOP;

END;

Os mapeamentos associados com DADs existentes pode ser alterado, utilizando os

procedimentos e UNMAP_DAD MAP_DAD.

Page 2: Oracle XE 11g R2

8/9/2019 Oracle XE 11g R2

http://slidepdf.com/reader/full/oracle-xe-11g-r2 2/7

Page 3: Oracle XE 11g R2

8/9/2019 Oracle XE 11g R2

http://slidepdf.com/reader/full/oracle-xe-11g-r2 3/7

Page 4: Oracle XE 11g R2

8/9/2019 Oracle XE 11g R2

http://slidepdf.com/reader/full/oracle-xe-11g-r2 4/7

 

[email protected] |  [email protected] | (55)479668-8829 

Testando a aplicação 

Uma vez que o DAD está configurado precisamos compilar um procedimento para o esquema

TAMIS para que o pai pode ser testado.

CREATE OR REPLACE PROCEDURE tamis.home IS

BEGINHTP.htmlopen;HTP.headopen;HTP.title('Bem vindo a página de testes!');HTP.headclose;HTP.bodyopen;HTP.print('Essa é somente uma página de testes! DateTime: ' || TO_CHAR(SYSTIMESTAMP));HTP.bodyclose;HTP.htmlclose;

END home;

O servidor HTTP embutido deve registar-se automaticamente com o ouvinte. A documentaçãoDB XML sugere que a porta 8080 deve ser apresentado para o acesso HTTP automaticamente. Na

minha experiência, isso não parece ser o caso, então eu fui forçado a aditadas as seguintes entradas

no DESCRIPTION_LIST do arquivo listener.ora. O ouvinte deve ser recarregado ou reiniciado antes de

quaisquer testes que são realizados.

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=8080))(Presentation=HTTP)(Session=RAW)

)(DESCRIPTION=

(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=2100))(Presentation=FTP)(Session=RAW))

O pai pode agora ser testada, chamando o seguinte URL em um navegador.

http://<server-name>:8080/epg_dad/home  http://localhost:8080/epg_dad/home  

Uma vez que você se convenceu de que o pai trabalha você está pronto para desenvolver

aplicações web PL / SQL usando o Web Toolkit PL / SQL ou PL / SQL Server Pages.

Habilitando o repositório 

Se você deseja habilitar o acesso anônimo para o repositório DB XML, o código a seguir cria o

elemento "<allow-repository-anonymous-access>" (allow-de acesso anônimo repositório) se ele estiver

ausente, ou o atualiza, se ele já está presente no arquivo xdbconfig.xml.

CONN sys/password AS SYSDBA

SET SERVEROUTPUT ONDECLARE

l_configxml XMLTYPE;l_value VARCHAR2(5) := 'true'; -- (true/false)

BEGINl_configxml := DBMS_XDB.cfg_get();

Page 5: Oracle XE 11g R2

8/9/2019 Oracle XE 11g R2

http://slidepdf.com/reader/full/oracle-xe-11g-r2 5/7

 

[email protected] |  [email protected] | (55)479668-8829 

IF l_configxml.existsNode('/xdbconfig/sysconfig/protocolconfig/httpconfig/allow-repository-anonymous-access') = 0 THEN

-- Add missing element.SELECT insertChildXML

(l_configxml,'/xdbconfig/sysconfig/protocolconfig/httpconfig','allow-repository-anonymous-access',XMLType('<allow-repository-anonymous-access

xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd">' ||l_value ||

'</allow-repository-anonymous-access>'),'xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd"'

)INTO l_configxmlFROM dual;

DBMS_OUTPUT.put_line('Element inserted.');ELSE

-- Update existing element.SELECT updateXML

(DBMS_XDB.cfg_get(),'/xdbconfig/sysconfig/protocolconfig/httpconfig/allow-repository-anonymous-

access/text()',l_value,'xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd"'

)INTO l_configxmlFROM dual;

DBMS_OUTPUT.put_line('Element updated.');END IF;

DBMS_XDB.cfg_update(l_configxml);DBMS_XDB.cfg_refresh;

END;

Uma vez que o o "<allow-de acesso anônimo repositório>" elemento é definido como "true", o

acesso anônimo para o repositório DB XML é ativado por desbloquear a conta do banco de dados

anónimos.

CONN sys/password AS SYSDBA

ALTER USER anonymous ACCOUNT UNLOCK;

Removendo o acesso anônimo para o repositório DB XML pode ser realizado através do

bloqueio da conta de banco de dados anónimos, ou definir o elemento "<allow-de acesso anônimo

repositório>" de volta para "false".

Se você precisar remover o elemento "<acesso permitir-repositório-anonymous>" inteiramente,

ele pode ser realizado utilizando o seguinte código.

CONN sys/password AS SYSDBA

SET SERVEROUTPUT ONDECLARE

l_configxml XMLTYPE;

Page 6: Oracle XE 11g R2

8/9/2019 Oracle XE 11g R2

http://slidepdf.com/reader/full/oracle-xe-11g-r2 6/7

 

[email protected] |  [email protected] | (55)479668-8829 

BEGINl_configxml := DBMS_XDB.cfg_get();

IF l_configxml.existsNode('/xdbconfig/sysconfig/protocolconfig/httpconfig/allow-repository-anonymous-access') != 0 THEN

SELECT deleteXML(

l_configxml,'/xdbconfig/sysconfig/protocolconfig/httpconfig/allow-repository-

anonymous-access','xmlns="http://xmlns.oracle.com/xdb/xdbconfig.xsd"'

)INTO l_configxmlFROM dual;

DBMS_XDB.cfg_update(l_configxml);DBMS_XDB.cfg_refresh;

DBMS_OUTPUT.put_line('Element deleted.');END IF;

END;

O DROP_DAD é utilizado para remover um PAI indesejado.

-- LIMPE O DADBEGIN

DBMS_EPG.drop_dad (dad_name => 'epg_dad');

END;

- Bloquear os usuários novamente.ALTER USER scott ACCOUNT LOCK;

“Esse artigo foi desenvolvido por Joel Schecheleski, para ensinar de forma prática como configurar o bancode dados para aceitar via browser Funções e Procedimentos HTP. Para quem tiver dúvidas existe uma procedurede banco de dados capaz de fazer todas as configurações acima informadas, bastando informar somente o usuárioque terá acesso ao repositório do banco de dados. Em caso de dúvidas entre em contato”.

Page 7: Oracle XE 11g R2

8/9/2019 Oracle XE 11g R2

http://slidepdf.com/reader/full/oracle-xe-11g-r2 7/7

 

Joel jsp@gmail com | joel jsp@outlook com | (55)479668-8829