Upload
joel-schecheleski
View
238
Download
0
Embed Size (px)
Citation preview
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.
8/9/2019 Oracle XE 11g R2
http://slidepdf.com/reader/full/oracle-xe-11g-r2 2/7
8/9/2019 Oracle XE 11g R2
http://slidepdf.com/reader/full/oracle-xe-11g-r2 3/7
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();
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;
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”.
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