PDF de programación - XML desde SQL y PL/SQL

Imágen de pdf XML desde SQL y PL/SQL

XML desde SQL y PL/SQLgráfica de visualizaciones

Publicado el 18 de Junio del 2018
601 visualizaciones desde el 18 de Junio del 2018
576,6 KB
4 paginas
Creado hace 15a (22/05/2008)
XML desde SQL y PL/SQL

IDENTIFICACIÓN

Proyecto
Nombre del Documento
Autor
Versión Actual
Fecha de la Versión

DBconnector – XML desde SQL y PL/SQL
DOCxmlDesdePLSQL.odt
Juan Luis Serradilla Amarilla
1.0
7 de mayo de 2008

RESUMEN
Esto es un "how­to" de cómo trabajar con XML desde SQL o PL/SQL (los ejemplos están probados 
en nuestra BD de desarrollo, que es 9i).

VERSIONES

Versión
1.0

Descripción
Fecha
07/05/2008 Juan Luis Serradilla Amarilla Versión inicial

Autor

Metodología, Normalización y Calidad del Software ­ ATICA

XML desde SQL y PL/SQL 

Página 1 de 4

Índice de contenido
1.Introducción.......................................................................................................................................3
2.Obtener los datos de una tabla en formato XML...............................................................................3
 2.1.Desde PL/SQL con DBMS_XMLGEN....................................................................................3
 2.2.Desde SQL usando funciones de SQLX...................................................................................3
3.Almacenar datos XML en una tabla y leerlos...................................................................................4
4.Crear un índice sobre datos XML......................................................................................................4
5.Referencias.........................................................................................................................................4

Metodología, Normalización y Calidad del Software

ATICA

Página 3 de 4

XML desde SQL y PL/SQL

Introducción.

1.
Oracle, ya en su versión 8i, empezó a introducir capacidades de procesamiento XML en su motor de 
base de datos.

Esto es una Nota Técnica, más bien un "how­to", de cómo trabajar con XML desde SQL o PL/SQL 
(los ejemplos están probados en nuestra BD de desarrollo, que es 9i).

2. Obtener los datos de una tabla en formato XML.

 2.1. Desde PL/SQL con DBMS_XMLGEN.
SQL>
   DECLARE
     Ctx    DBMS_XMLGEN.ctxHandle;   ­­ Var's to convert SQL output to XML
     xml    clob;
     emp_no NUMBER := 7369;
     xmlc   varchar2(4000);          ­­ Var's required to convert lob to varchar
     off    integer := 1;
     len    integer := 4000;
   BEGIN
     Ctx := DBMS_XMLGEN.newContext('SELECT * FROM emp WHERE empno = '||emp_no);
     DBMS_XMLGen.setRowsetTag(Ctx, 'EMP_TABLE');
     DBMS_XMLGen.setRowTag(Ctx, 'EMP_ROW');
     xml := DBMS_XMLGEN.getXML(Ctx);
     DBMS_XMLGEN.closeContext(Ctx);

     DBMS_LOB.READ(xml, len, off, xmlc);   ­­ Display first part on screen
     DBMS_OUTPUT.PUT_LINE(xmlc);
   END;

SQL> /
<?xml version="1.0"?>
<EMP_TABLE>
 <EMP_ROW>
  <EMPNO>7369</EMPNO>

<ENAME>SMITH</ENAME>
  <JOB>CLERK</JOB>
  <MGR>7902</MGR>

<HIREDATE>17­DEC­80</HIREDATE>
  <SAL>800</SAL>
  <DEPTNO>20</DEPTNO>

</EMP_ROW>
</EMP_TABLE>

PL/SQL procedure successfully completed.

 2.2. Desde SQL usando funciones de SQLX.
Como XMLelement(), XMLForest(), XMLSequence(), etc.

Metodología, Normalización y Calidad del Software

ATICA

XML desde SQL y PL/SQL 

Página 3 de 4

SQL> set long 32000
SQL> SELECT XMLELEMENT("EMP_TABLE",
                (select XMLELEMENT("EMP_ROW",
                        XMLFOREST(empno, ename, job, mgr, hiredate, sal, deptno)
                        )
                 from   emp
                 where  empno = 7369))
        from dual;

XMLELEMENT("EMP_TABLE",(SELECTXMLELEMENT("EMP_ROW",XMLFOREST(EMPNO,ENAME,JOB,MGR
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
<EMP_TABLE><EMP_ROW><EMPNO>7369</EMPNO><ENAME>SMITH</ENAME><JOB>CLERK</JOB><MGR>
7902</MGR><HIREDATE>17­DEC­80</HIREDATE><SAL>800</SAL><DEPTNO>20</DEPTNO></EMP_R
OW></EMP_TABLE>

3. Almacenar datos XML en una tabla y leerlos.
SQL> create table XMLTable (doc_id number, xml_data XMLType);
Table created.

SQL>    insert into XMLTable values (1,
                XMLType('<FAQ­LIST>
                   <QUESTION>
                        <QUERY>Question 1</QUERY>
                        <RESPONSE>Answer goes here.</RESPONSE>
                   </QUESTION>
                </FAQ­LIST>'));
1 row created.

SQL>
select extractValue(xml_data, '/FAQ­LIST/QUESTION/RESPONSE') ­­ XPath expression
  from   XMLTable
 where  existsNode(xml_data, '/FAQ­LIST/QUESTION[QUERY="Question 1"]') = 1;

EXTRACTVALUE(XML_DATA,'/FAQ­LIST/QUESTION/RESPONSE')­­XPATHEXPRESSION
­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
Answer goes here.

4. Crear un índice sobre datos XML.
SQL> create index XMLTable_ind on XMLTable
                (extractValue(xml_data, '/FAQ­LIST/QUESTION/QUERY') );

Index created.

5. Referencias

• http://www.orafaq.com/faqxml.htm
 
• http://www.oracle.com/technology/tech/xml/index.html
 
• http://www.oracle.com/technology/pub/articles/quinlan­xml.html
 

 
 
 

Metodología, Normalización y Calidad del Software

ATICA
  • Links de descarga
http://lwp-l.com/pdf11950

Comentarios de: XML desde SQL y PL/SQL (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad