SlideShare una empresa de Scribd logo
1 de 114
Oracle XMLDB Funcionalidades de Oracle para el lenguaje XML
Historia de la Relación de XML con Oracle ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Historia de la Relación de XML con Oracle ,[object Object],[object Object],[object Object],[object Object]
Funcionalidades XML de Oracle 10g Java Stored Procedures XDK XML APIs XML DB Repository C-based PL/SQL Packages SQL/XML  XMLType Native XML Support Extensible XML Support C External Procedures
Oracle XDK
Oracle XDK ,[object Object],[object Object],[object Object]
Oracle XDK ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Oracle XDK ,[object Object],[object Object],[object Object]
Oracle XDK ,[object Object],[object Object]
Oracle XDK ,[object Object],[object Object]
Oracle XDK ,[object Object],[object Object]
Oracle XDK ,[object Object],[object Object]
Oracle XDK ,[object Object],[object Object],[object Object]
Oracle XDK ,[object Object],[object Object]
Oracle XDK ,[object Object],[object Object],[object Object],[object Object]
Oracle XMLDB
Oracle XMLDB ,[object Object],[object Object],[object Object]
O racle XMLDB ,[object Object],[object Object]
Oracle XMLDB ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Oracle XMLDB ,[object Object],[object Object]
Oracle XMLDB ,[object Object]
Hojas XSQL
Hojas XSQL ,[object Object],[object Object],[object Object],[object Object]
Hojas XSQL ,[object Object]
Hojas XSQL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hojas XSQL ,[object Object],[object Object],[object Object]
Hojas XSQL ,[object Object],[object Object],[object Object]
Hojas XSQL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hojas XSQL ,[object Object],Registro <?xml version = '1.0'?> <ROWSET> <ROW num=&quot;1&quot;> <TEXT>Hello, World!</TEXT> </ROW> </ROWSET> Campo Valor <> Nulo
Hojas XSQL ,[object Object],<?xml version=&quot;1.0&quot;?> <?xml-stylesheet type=&quot;text/xsl&quot; href=&quot;HelloWorld.xsl&quot;?> <xsql:query connection=&quot;xmlbook&quot; xmlns:xsql=&quot;urn:oracle-xsql&quot;> SELECT 'Hello, World!' AS text FROM DUAL </xsql:query>
Hojas XSQL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hojas XSQL ,[object Object],[object Object],[object Object],<?xml version=&quot;1.0&quot;?> <xsql:query connection=&quot;xmlbook&quot; msg=&quot;Hello, World!&quot; xmlns:xsql=&quot;urn:oracle-xsql&quot;> SELECT '{@msg}' AS text, TO_CHAR(sysdate,'DD-MON-YYYY HH24:MI:SS') AS sent FROM dual </xsql:query> Cambiamos el nombre  Del elemento usando Alias Cambiamos el nombre  Del elemento usando un ALIAS
Hojas  XSQL ,[object Object],[object Object],[object Object],<?xml version = '1.0'?> <ROWSET> <ROW num=&quot;1&quot;> <TEXT>HOLA</TEXT> <SENT>05-SEP-1999 15:11:45</SENT> </ROW> </ROWSET>
Hojas  XSQL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hojas  XSQL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hojas  XSQL <?xml version=&quot;1.0&quot;?> <xsql:query connection=&quot;xmlbook&quot; xmlns:xsql=&quot;urn:oracle-xsql&quot; rowset-element=&quot;DEPARTMENT-LIST&quot; row-element=&quot;DEPARTMENT&quot;> SELECT dept.deptno AS &quot;NUMBER&quot;, sum(sal) AS &quot;TOTAL-SALARIES&quot; FROM emp,dept WHERE dept.deptno = emp.deptno GROUP BY dept.deptno ORDER BY 1 </xsql:query>
Hojas  XSQL ,[object Object],<?xml version = '1.0'?> <DEPARTMENT-LIST> <DEPARTMENT num=&quot;1&quot;> <NUMBER>10</NUMBER> <TOTAL-SALARIES>8750</TOTAL-SALARIES> </DEPARTMENT> <DEPARTMENT num=&quot;2&quot;> <NUMBER>20</NUMBER> <TOTAL-SALARIES>10875</TOTAL-SALARIES> </DEPARTMENT> <DEPARTMENT num=&quot;3&quot;> <NUMBER>30</NUMBER> <TOTAL-SALARIES>9400</TOTAL-SALARIES> </DEPARTMENT> </DEPARTMENT-LIST>
Hojas  XSQL ,[object Object],<?xml version=&quot;1.0&quot;?> <xsql:query connection=&quot;xmlbook&quot; cat=&quot;news&quot; skip=&quot;0&quot; max-rows=&quot;2&quot; skip-rows=&quot;{@skip}&quot; xmlns:xsql=&quot;urn:oracle-xsql&quot;> SELECT title,url
Hojas  XSQL ,[object Object],<xsql:query connection=&quot;demo&quot; xmlns:xsql=&quot;urn:oracle-xsql&quot;> SELECT dname, CURSOR( SELECT ename,sal FROM emp WHERE emp.deptno = dept.deptno) as employees /* Column Alias */ FROM dept WHERE deptno = {@department} </xsql:query>
Hojas  XSQL ,[object Object],<ROWSET> <ROW num=&quot;1&quot;> <DNAME>ACCOUNTING</DNAME> <EMPLOYEES> <EMPLOYEES_ROW num=&quot;1&quot;> <ENAME>CLARK</ENAME> <SAL>2450</SAL> </EMPLOYEES_ROW> <EMPLOYEES_ROW num=&quot;2&quot;> <ENAME>KING</ENAME> <SAL>5000</SAL> </EMPLOYEES_ROW> <EMPLOYEES_ROW num=&quot;3&quot;> <ENAME>MILLER</ENAME> <SAL>1300</SAL> </EMPLOYEES_ROW> </EMPLOYEES> </ROW> </ROWSET>
Hojas  XSQL ,[object Object],<?xml version=&quot;1.0&quot;?> <xsql:query connection=&quot;xmlbook&quot; max-rows=&quot;1&quot; rowset-element=&quot;Ok&quot; row-element=&quot;Airport&quot; xmlns:xsql=&quot;urn:oracle-xsql&quot;> SELECT tla &quot;Code&quot;, description &quot;Description&quot; FROM AIRPORT WHERE tla = UPPER('{@code}') <xsql:no-rows-query max-rows=&quot;4&quot;  rowset-element=&quot;Error&quot;  row-element=&quot;Airport&quot;> SELECT tla &quot;Code&quot;, description &quot;Description&quot; FROM AIRPORT WHERE UPPER(description) LIKE UPPER('%{@code}%') ORDER BY 2 </xsql:no-rows-query> </xsql:query> • Valida y si encuentra una fila crea un elemento error
Hojas  XSQL ,[object Object],[object Object],[object Object],<xsql:set-session-param>
Hojas  XSQL ,[object Object],[object Object],[object Object],<xsql:set-cookie>
Hojas  XSQL ,[object Object],[object Object],[object Object],<xsql:set-page-param>
Hojas  XSQL ,[object Object],[object Object],<xsql:include-param>
XMLType
XMLType ,[object Object],[object Object],[object Object],[object Object]
XMLType ,[object Object],[object Object],[object Object],[object Object]
XMLType ,[object Object]
XMLType ,[object Object],[object Object],[object Object],[object Object]
XMLType ,[object Object],CREATE TABLE warehouses(  warehouse_id NUMBER(4),  warehouse_spec  XMLTYPE ,  warehouse_name VARCHAR2(35),  location_id NUMBER(4));
XMLType ,[object Object],ALTER TABLE po_xml_tab add (custDoc XMLType);
XMLType ,[object Object],ALTER TABLE po_xml_tab drop (custDoc);
XMLType ,[object Object],INSERT INTO warehouses VALUES ( 100, XMLType( '<Warehouse whNo=&quot;100&quot;>  <Building>Owned</Building>  </Warehouse>'), 'Tower Records', 1003);
XMLType ,[object Object],UPDATE warehouses SET warehouse_spec = XMLType ('<Warehouse whono=&quot;200&quot;> <Building>Leased</Building>  </Warehouse>');
XMLType ,[object Object],CREATE TABLE XMLTABLE OF XMLType;
XMLType ,[object Object],CREATE TABLE po_xml_tab( poid NUMBER(10), poDoc XMLTYPE )  XMLType COLUMN poDoc STORE AS CLOB  ( TABLESPACE lob_seg_ts  STORAGE  (INITIAL 4096 NEXT 4096)  CHUNK 4096 NOCACHE  LOGGING );
XMLType ,[object Object],[object Object],ALTER TABLE po_xml_tab add( custDoc XMLTYPE ) XMLType COLUMN custDoc STORE AS CLOB  ( TABLESPACE lob_seg_ts  STORAGE  (INITIAL 4096 NEXT 4096)  CHUNK 4096 NOCACHE  LOGGING );
XMLType ,[object Object],[object Object]
XMLType ,[object Object],[object Object],CREATE TABLE po_clob_tab  ( poid number, poClob CLOB );  INSERT INTO po_clob_tab VALUES(100,  '<?xml version=&quot;1.0&quot;?>  <PO pono=&quot;1&quot;>  <PNAME>Po_1</PNAME>  <CUSTNAME>John</CUSTNAME>  <SHIPADDR>  <STREET>1033, Main Street</STREET>  <CITY>Sunnyvalue</CITY> <STATE>CA</STATE>  </SHIPADDR>  </PO>');
XMLType ,[object Object],[object Object],INSERT INTO po_xml_tab SELECT poid, XMLType(poClob) FROM po_clob_tab;
XMLType ,[object Object],[object Object],INSERT INTO po_xml_tab VALUES(100,  XMLType ( '<?xml version=&quot;1.0&quot;?>  <PO pono=&quot;1&quot;>  <PNAME>Po_1</PNAME> <CUSTNAME>John</CUSTNAME> <SHIPADDR>  <STREET>1033, Main Street</STREET> <CITY>Sunnyvalue</CITY> <STATE>CA</STATE>  </SHIPADDR>  </PO>' ) );
XMLType ,[object Object],[object Object],INSERT INTO po_xml_tab  SELECT XMLelement(&quot;po&quot;, value(p))  FROM po p  WHERE p.pono=2001;
XMLType ,[object Object],[object Object],SET long 2000 SELECT e.poDoc. getClobval()  AS poXML FROM po_xml_tab e; POXML  ---------------------  <?xml version=&quot;1.0&quot;?>  <PO pono=&quot;2&quot;>  <PNAME>Po_2</PNAME>  <CUSTNAME>Nance</CUSTNAME>  <SHIPADDR>  <STREET>2 Avocet Drive</STREET>  <CITY>Redwood Shores</CITY>  <STATE>CA</STATE>  </SHIPADDR>  </PO>
XMLType ,[object Object],[object Object],[object Object],SELECT e.poDoc.getClobval() AS poXML FROM po_xml_tab e WHERE e.poDoc. existsNode ('/PO[PNAME = &quot;po_2&quot;]') = 1;  SELECT warehouse_id,  EXISTSNODE (warehouse_spec, '/Warehouse/Docks') &quot;Loading Docks&quot; FROM warehouses WHERE warehouse_spec IS NOT NULL;
XMLType ,[object Object],SELECT warehouse_name,  extract (warehouse_spec, '/Warehouse/Docks').getStringVal() &quot;Number of Docks&quot; FROM warehouses WHERE warehouse_spec IS NOT NULL;  WAREHOUSE_NAME  Number of Docks  --------------------  --------------------  Southlake, Texas  <Docks>2</Docks>  San Francisco  <Docks>1</Docks>  New Jersey  <Docks/>  Seattle, Washington  <Docks>3</Docks>
XMLType ,[object Object],SELECT warehouse_name,  extractValue (e.warehouse_spec, '/Warehouse/Docks') &quot;Docks&quot; FROM warehouses e WHERE warehouse_spec IS NOT NULL; WAREHOUSE_NAME  Docks  --------------------  ------------  Southlake, Texas  2  San Francisco  1  New Jersey  Seattle, Washington  3
XMLType ,[object Object],UPDATE po_xml_tab e SET e.poDoc = XMLType( '<?xml version=&quot;1.0&quot;?>  <PO pono=&quot;2&quot;>  <PNAME>Po_2</PNAME>  <CUSTNAME>Nance</CUSTNAME>  <SHIPADDR>  <STREET>2 Avocet Drive</STREET>  <CITY>Redwood Shores</CITY>  <STATE>CA</STATE>  </SHIPADDR>  </PO>')  WHERE e.poDoc.EXTRACT('/PO/PONO/text()').getNumberVal() = 2001;
XMLType ,[object Object],UPDATE po_xml_tab SET poDoc = UPDATEXML(poDoc, '/PO/CUSTNAME/text()', 'John');  SELECT e.poDoc.getstringval() AS newpo FROM po_xml_tab e;  NEWPO  --------------------------------------------------------------------  <?xml version=&quot;1.0&quot;?>  <PO pono=&quot;2&quot;>  <PNAME>Po_2</PNAME>  <CUSTNAME> John </CUSTNAME>  <SHIPADDR>  <STREET>2 Avocet Drive</STREET>  <CITY>Redwood Shores</CITY>  <STATE>CA</STATE>  </SHIPADDR>  </PO>
XMLType ,[object Object],UPDATE emp_tab e SET e.emp_col = UPDATEXML(e.emp_col, '/EMPLOYEES/EMP[EMPNAME=&quot;Joe&quot;]/SALARY/text()',100000, '//EMP[EMPNAME=&quot;Jack&quot;]/EMPNAME/text()','Jackson', '//EMP[EMPNO=217]',XMLTYPE.CREATEXML( '<EMP><EMPNO>217</EMPNO><EMPNAME>Jane</EMPNAME></EMP>')) WHERE EXISTSNODE(e.emp_col, '//EMP') = 1;
XMLType ,[object Object],CREATE VIEW new_emp_view AS SELECT UPDATEXML(emp_col, '/EMPLOYEES/EMP/SALARY/text()', 0) emp_view_col FROM emp_tab e;
XMLType ,[object Object],DELETE FROM po_xml_tab e WHERE e.poDoc.extract('/PO/PNAME/text()').getStringVal()='Po_2';
XMLType ,[object Object],[object Object],[object Object],CREATE INDEX city_index ON po_xml_tab (poDoc.extract('//PONO/text()').getNumberVal());  CREATE BITMAP INDEX po_index ON po_xml_tab (poDoc.existsNode('//SHIPADDR'));
XML Schema Support ,[object Object],[object Object],[object Object],[object Object]
XML Schema Support ,[object Object],[object Object]
XML Schema Support ,[object Object],[object Object],[object Object],[object Object],XMLIsValid ( XMLType_inst [, schemaurl [, elem]])  MEMBER PROCEDURE schemaValidate  MEMBER FUNCTION isSchemaValidated return NUMBER deterministic
XML Schema Support ,[object Object],[object Object],[object Object],MEMBER PROCEDURE setSchemaValidated(flag IN BINARY_INTEGER := 1)  SELECT x.xmlcol.isSchemaValid('http://www.example.com/schemas/ipo.xsd', 'purchaseOrder') FROM po_tab x;
XML Repository ,[object Object],[object Object],[object Object]
XML Repository ,[object Object],[object Object],[object Object]
XML Repository ,[object Object],[object Object],[object Object]
XML Repository ,[object Object],[object Object]
XML Repository ,[object Object],[object Object]
XML Repository ,[object Object],[object Object]
XML Repository ,[object Object],[object Object],[object Object],[object Object],[object Object]
XML Repository ,[object Object],[object Object]
XML Repository ,[object Object],insert into resource_view values(sys.xmltype.createxml(' <Resource xmlns=&quot;http://xmlns.oracle.com/xdb/XDBResource.xsd&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://xmlns.oracle.com/xdb/XDBResource.xsd http://xmlns.oracle.com/xdb/XDBResource.xsd&quot;> < Author >John Doe</Author> <DisplayName>example</DisplayName> <Comment>This resource was contrived for resource view demo</Comment> <Language>en</Language> <CharacterSet>ASCII</CharacterSet> <ContentType>text/plain</ContentType> </Resource>'), '/home/SCOTT');
XML Repository ,[object Object],insert into resource_view values(sys.xmltype.createxml(' update resource_view set res = sys.xmltype.createxml(' <Resource xmlns=&quot;http://xmlns.oracle.com/xdb/XDBResource.xsd&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://xmlns.oracle.com/xdb/XDBResource.xsd http://xmlns.oracle.com/xdb/XDBResource.xsd&quot;> <Author>John Doe</Author> <DisplayName>example</DisplayName> <Comment>Has this got updated or not ? </Comment> <Language>en</Language> <CharacterSet>ASCII</CharacterSet> <ContentType>text/plain</ContentType> </Resource>') where any_path = '/home/SCOTT/example';
XML Repository ,[object Object],delete from resource_view where any_path = '/home/SCOTT/example
Internet Protocol Support
Internet Protocol Support ,[object Object],[object Object]
Versionado ,[object Object],[object Object],[object Object]
Versionado ,[object Object]
Versionado ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SQLX ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SQLX ,[object Object],[object Object]
SQLX ,[object Object],SELECT e.employee_id, XMLELEMENT ( &quot;Emp&quot;, e.first_name ||' ' || e.last_name ) AS &quot;result&quot; FROM hr.employees e WHERE employee_id > 200;  -- ID result -- --------------------  -- 1001 <Emp>John Smith</Emp>  -- 1206 <Emp>Mary Martin</Emp>
SQLX ,[object Object],[object Object],[object Object]
SQLX ,[object Object],[object Object],SELECT XMLELEMENT ( &quot;Emp&quot;, XMLATTRIBUTES (e.id,e.first_name ||' ' || e.last_name AS &quot;name&quot;)) AS &quot;result&quot; FROM employees e WHERE employee_id > 200;  result  --------------  <Emp ID=&quot;1001&quot; name=&quot;John Smith&quot;/>  <Emp ID=&quot;1206&quot; name=&quot;Mary Martin&quot;/>
SQLX ,[object Object],[object Object],[object Object]
SQLX ,[object Object],SELECT XMLELEMENT(&quot;Emp&quot;, XMLATTRIBUTES ( e.first_name ||' '|| e.last_name AS &quot;name&quot; ), XMLForest ( e.hire_date, e.department_id AS &quot;department&quot;)) AS &quot;result&quot; FROM hr.employees e;  <Emp name=&quot;John Smith&quot;>  <HIRE>2000-05-24</HIRE>  <department>Accounting</department>  </Emp>  <Emp name=&quot;Mary Martin&quot;>  <HIRE>1996-02-01</HIRE>  <department>Shipping</department>  </Emp>
SQLX ,[object Object],[object Object]
SQLX ,[object Object],SELECT SYS_XMLAGG(value(e), xmlformat('EMPLOYEES')) FROM TABLE(XMLSequence(Extract(doc, '/EMPLOYEES/EMP'))) e WHERE EXTRACTVALUE(value(e), '/EMP/SALARY') >= 50000;  <EMPLOYEES>  <EMP>  <EMPNO>112</EMPNO>  <EMPNAME>Joe</EMPNAME>  <SALARY>50000</SALARY>  </EMP>  <EMP>  <EMPNO>217</EMPNO>  <EMPNAME>Jane</EMPNAME>  <SALARY>60000</SALARY>  </EMP>  </EMPLOYEES>  <EMPLOYEES>  <EMP>  <EMPNO>112</EMPNO>  <EMPNAME>Joe</EMPNAME>  <SALARY>50000</SALARY>  </EMP>  <EMP>  <EMPNO>217</EMPNO>  <EMPNAME>Jane</EMPNAME>  <SALARY>60000</SALARY>  </EMP>  <EMP>  <EMPNO>412</EMPNO> <EMPNAME>Jack</EMPNAME> <SALARY>40000</SALARY>  </EMP>  </EMPLOYEES>
SQLX ,[object Object],[object Object]
SQLX ,[object Object],SELECT XMLConcat ( XMLElement (&quot;first&quot;, e.fname), XMLElement (&quot;last&quot;, e.lname)) AS &quot;result&quot; FROM employees e ;  <first>Mary</first>  <last>Martin</last>  <first>John</first>  <last>Smith</last>
SQLX ,[object Object],[object Object]
SQLX ,[object Object],SELECT XMLELEMENT(&quot;Department&quot;, XMLAGG( XMLELEMENT(&quot;Employee&quot;, e.job_id||' '||e.last_name) ORDER BY last_name)) as &quot;Dept_list&quot; FROM employees e WHERE e.department_id = 30;  Dept_list  ------------------------------------------- <Department>  <Employee>PU_CLERK Baida</Employee>  <Employee>PU_CLERK Colmenares</Employee>  <Employee>PU_CLERK Himuro</Employee>  <Employee>PU_CLERK Khoo</Employee>  <Employee>PU_MAN Raphaely</Employee>  <Employee>PU_CLERK Tobias</Employee>  </Department>
SQLX ,[object Object],[object Object],[object Object]
SQLX ,[object Object],SELECT XMLELEMENT(&quot;Emp&quot;,XMLATTRIBUTES(e.fname ||' '||e.lname AS &quot;name&quot; ), XMLCOLATTVAL ( e.hire, e.dept AS &quot;department&quot;)) AS &quot;result&quot; FROM employees e;  <Emp name=&quot;John Smith&quot;>  <column name=&quot;HIRE&quot;>2000-05-24</column>  <column name=&quot;department&quot;>Accounting</column>  </Emp>  <Emp name=&quot;Mary Martin&quot;>  <column name=&quot;HIRE&quot;>1996-02-01</column>  <column name=&quot;department&quot;>Shipping</column>  </Emp>  <Emp name=&quot;Samantha Stevens&quot;>  <column name=&quot;HIRE&quot;>1992-11-15</column>  <column name=&quot;department&quot;>Standards</column>  </Emp>
SQLX ,[object Object],[object Object],[object Object],[object Object]
SQLX ,[object Object],CREATE TABLE temp_clob_tab(result CLOB);  DECLARE qryCtx DBMS_XMLGEN.ctxHandle; result CLOB;  BEGIN  qryCtx := dbms_xmlgen.newContext('SELECT * from scott.emp');  -- set the row header to be  EMPLOYEE DBMS_XMLGEN.setRowTag(qryCtx, 'EMPLOYEE');  -- now get the result  result := DBMS_XMLGEN.getXML(qryCtx); INSERT INTO temp_clob_tab VALUES(result);  --close context DBMS_XMLGEN.closeContext(qryCtx);  END;  /
SQLX ,[object Object],SELECT * FROM temp_clob_tab;  RESULT  ------------------------------------  <?xml version=''1.0''?>  <ROWSET>  <EMPLOYEE>  <EMPNO>7369</EMPNO>  <ENAME>SMITH</ENAME>  <JOB>CLERK</JOB>  <MGR>7902</MGR>  <HIREDATE>17-DEC-80</HIREDATE>  <SAL>800</SAL>  <DEPTNO>20</DEPTNO>  </EMPLOYEE>  <EMPLOYEE>  <EMPNO>7499</EMPNO>  <ENAME>ALLEN</ENAME>  <JOB>SALESMAN</JOB>  <MGR>7698</MGR>  <HIREDATE>20-FEB-81</HIREDATE>  <SAL>1600</SAL>  <COMM>300</COMM>  <DEPTNO>30</DEPTNO>  </EMPLOYEE>  ...  </ROWSET>
SQLX ,[object Object],[object Object],CREATE TABLE temp_clob_tab ( result clob);  declare qryCtx dbms_xmlgen.ctxHandle;  result CLOB;  begin  qryCtx := dbms_xmlgen.newContext('select * from scott.emp');  -- set the maximum number of rows to be 5,  dbms_xmlgen.setMaxRows(qryCtx, 5);  loop  result := dbms_xmlgen.getXML(qryCtx);  -- if there were no rows processed, then quit..!  exit when dbms_xmlgen.getNumRowsProcessed(qryCtx) = 0;  insert into temp_clob_tab values(result);  end loop;  dbms_xmlgen.closeContext(qryCtx);  end;  /
SQLX
http://www.hermenegildoromero.com Hermenegildo Romero [email_address]

Más contenido relacionado

La actualidad más candente

Administracion de base de datos oracle tarea#02
Administracion de base de datos oracle tarea#02Administracion de base de datos oracle tarea#02
Administracion de base de datos oracle tarea#02
Celso
 
ENTERPRISE MANAGER DE LA BASE DE DATOS ORACLE VERSIÓN 11G
ENTERPRISE MANAGER DE LA BASE DE DATOS ORACLE VERSIÓN 11GENTERPRISE MANAGER DE LA BASE DE DATOS ORACLE VERSIÓN 11G
ENTERPRISE MANAGER DE LA BASE DE DATOS ORACLE VERSIÓN 11G
1712223955
 

La actualidad más candente (17)

Administración de Oracle - Tema 01 - Introducción
Administración de Oracle - Tema 01 - IntroducciónAdministración de Oracle - Tema 01 - Introducción
Administración de Oracle - Tema 01 - Introducción
 
Administracion de base de datos oracle tarea#02
Administracion de base de datos oracle tarea#02Administracion de base de datos oracle tarea#02
Administracion de base de datos oracle tarea#02
 
ADO
ADOADO
ADO
 
Ado.net 2012
Ado.net 2012Ado.net 2012
Ado.net 2012
 
Conexion a bases de datos
Conexion a bases de datosConexion a bases de datos
Conexion a bases de datos
 
Sistemas de gestión de base de datos
Sistemas de gestión de base de datosSistemas de gestión de base de datos
Sistemas de gestión de base de datos
 
Sql
SqlSql
Sql
 
TUTORIAL DE ADO.NET MUY BUENO
TUTORIAL DE ADO.NET MUY BUENOTUTORIAL DE ADO.NET MUY BUENO
TUTORIAL DE ADO.NET MUY BUENO
 
Curso xml
Curso xmlCurso xml
Curso xml
 
Sql Server
Sql ServerSql Server
Sql Server
 
Exposicion oracle
Exposicion oracleExposicion oracle
Exposicion oracle
 
Curso SQL - Leccion 1
Curso SQL - Leccion 1Curso SQL - Leccion 1
Curso SQL - Leccion 1
 
Programacion con SQL Server 2005
Programacion con SQL Server 2005Programacion con SQL Server 2005
Programacion con SQL Server 2005
 
Manual
ManualManual
Manual
 
Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)Ejemplo Base de Datos SQLite (Android)
Ejemplo Base de Datos SQLite (Android)
 
Sql
SqlSql
Sql
 
ENTERPRISE MANAGER DE LA BASE DE DATOS ORACLE VERSIÓN 11G
ENTERPRISE MANAGER DE LA BASE DE DATOS ORACLE VERSIÓN 11GENTERPRISE MANAGER DE LA BASE DE DATOS ORACLE VERSIÓN 11G
ENTERPRISE MANAGER DE LA BASE DE DATOS ORACLE VERSIÓN 11G
 

Destacado (8)

Xml
XmlXml
Xml
 
Grupo1
Grupo1Grupo1
Grupo1
 
Java and XML
Java and XMLJava and XML
Java and XML
 
Xml Java
Xml JavaXml Java
Xml Java
 
Tema 3 xml processing ap is
Tema 3   xml processing ap isTema 3   xml processing ap is
Tema 3 xml processing ap is
 
XML y JAVA
XML y JAVAXML y JAVA
XML y JAVA
 
Integración de aplicaciones Java
Integración de aplicaciones JavaIntegración de aplicaciones Java
Integración de aplicaciones Java
 
Paginas de matematicas
Paginas de matematicasPaginas de matematicas
Paginas de matematicas
 

Similar a Oracle xmldb

10. Usando Datos Xml
10.  Usando Datos Xml10.  Usando Datos Xml
10. Usando Datos Xml
guest3cf6ff
 
Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)
Ronald Cuello
 
Lenguaje de consulta de datos
Lenguaje de consulta de datosLenguaje de consulta de datos
Lenguaje de consulta de datos
Francis Xavier
 

Similar a Oracle xmldb (20)

XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
 
10. Usando Datos Xml
10.  Usando Datos Xml10.  Usando Datos Xml
10. Usando Datos Xml
 
Tema 2
Tema 2Tema 2
Tema 2
 
ORACLE SQL
ORACLE SQLORACLE SQL
ORACLE SQL
 
Datos En La Web - Clase 2
Datos En La Web - Clase 2Datos En La Web - Clase 2
Datos En La Web - Clase 2
 
Apuntes de XSD
Apuntes de XSDApuntes de XSD
Apuntes de XSD
 
Ansi Sql
Ansi SqlAnsi Sql
Ansi Sql
 
Procesamiento de XML en C#
Procesamiento de XML en C#Procesamiento de XML en C#
Procesamiento de XML en C#
 
Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)Persistencia De Objetos(Hibernate)
Persistencia De Objetos(Hibernate)
 
Almdedat
AlmdedatAlmdedat
Almdedat
 
U7 1 xslt-curso2017-18
U7 1 xslt-curso2017-18U7 1 xslt-curso2017-18
U7 1 xslt-curso2017-18
 
Lenguaje de consulta de datos
Lenguaje de consulta de datosLenguaje de consulta de datos
Lenguaje de consulta de datos
 
U7 1 xslt-curso2018-19
U7 1 xslt-curso2018-19U7 1 xslt-curso2018-19
U7 1 xslt-curso2018-19
 
Xml
XmlXml
Xml
 
Ansi Sql
Ansi SqlAnsi Sql
Ansi Sql
 
Ansi Sql
Ansi SqlAnsi Sql
Ansi Sql
 
Ansi Sql
Ansi SqlAnsi Sql
Ansi Sql
 
XSLT y XPATH
XSLT y XPATHXSLT y XPATH
XSLT y XPATH
 
Lenguaje XML
Lenguaje XMLLenguaje XML
Lenguaje XML
 
Proveedor act1 uni2_daw_6a
Proveedor act1 uni2_daw_6aProveedor act1 uni2_daw_6a
Proveedor act1 uni2_daw_6a
 

Más de Hermes Romero

Metodología de gestión del talento ágil
Metodología de gestión del talento ágilMetodología de gestión del talento ágil
Metodología de gestión del talento ágil
Hermes Romero
 
Introduction to Mobile Marketing - The complete tutorial
Introduction to Mobile Marketing - The complete tutorialIntroduction to Mobile Marketing - The complete tutorial
Introduction to Mobile Marketing - The complete tutorial
Hermes Romero
 
Metodologias de desarrollo
Metodologias de desarrolloMetodologias de desarrollo
Metodologias de desarrollo
Hermes Romero
 
Desarrollo de sistemas
Desarrollo de sistemasDesarrollo de sistemas
Desarrollo de sistemas
Hermes Romero
 

Más de Hermes Romero (17)

UNLEASHING INNOVATION Exploring Generative AI in the Enterprise.pdf
UNLEASHING INNOVATION Exploring Generative AI in the Enterprise.pdfUNLEASHING INNOVATION Exploring Generative AI in the Enterprise.pdf
UNLEASHING INNOVATION Exploring Generative AI in the Enterprise.pdf
 
Gestión del talento en la hostelería
Gestión del talento en la hosteleríaGestión del talento en la hostelería
Gestión del talento en la hostelería
 
Intalligent - Sistema de gestión del talento ágil
Intalligent - Sistema de gestión del talento ágilIntalligent - Sistema de gestión del talento ágil
Intalligent - Sistema de gestión del talento ágil
 
Agile talent management
Agile talent managementAgile talent management
Agile talent management
 
Metodología de gestión del talento ágil
Metodología de gestión del talento ágilMetodología de gestión del talento ágil
Metodología de gestión del talento ágil
 
Intalligent, Agile Talent Management
Intalligent, Agile Talent ManagementIntalligent, Agile Talent Management
Intalligent, Agile Talent Management
 
Introducción a Microstrategy
Introducción a MicrostrategyIntroducción a Microstrategy
Introducción a Microstrategy
 
Introduction to Mobile Marketing - The complete tutorial
Introduction to Mobile Marketing - The complete tutorialIntroduction to Mobile Marketing - The complete tutorial
Introduction to Mobile Marketing - The complete tutorial
 
Still using marketing from the stone age??
Still using marketing from the stone age??Still using marketing from the stone age??
Still using marketing from the stone age??
 
Manual XML
Manual XMLManual XML
Manual XML
 
Fundamentos de DataWarehouse
Fundamentos de DataWarehouseFundamentos de DataWarehouse
Fundamentos de DataWarehouse
 
Introducción a UML
Introducción a UMLIntroducción a UML
Introducción a UML
 
Metodologias de desarrollo
Metodologias de desarrolloMetodologias de desarrollo
Metodologias de desarrollo
 
Desarrollo de sistemas
Desarrollo de sistemasDesarrollo de sistemas
Desarrollo de sistemas
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
Proyectos software
Proyectos softwareProyectos software
Proyectos software
 
Introducción a Business objects
Introducción a Business objectsIntroducción a Business objects
Introducción a Business objects
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (10)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

Oracle xmldb

  • 1. Oracle XMLDB Funcionalidades de Oracle para el lenguaje XML
  • 2.
  • 3.
  • 4. Funcionalidades XML de Oracle 10g Java Stored Procedures XDK XML APIs XML DB Repository C-based PL/SQL Packages SQL/XML XMLType Native XML Support Extensible XML Support C External Procedures
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. Hojas XSQL <?xml version=&quot;1.0&quot;?> <xsql:query connection=&quot;xmlbook&quot; xmlns:xsql=&quot;urn:oracle-xsql&quot; rowset-element=&quot;DEPARTMENT-LIST&quot; row-element=&quot;DEPARTMENT&quot;> SELECT dept.deptno AS &quot;NUMBER&quot;, sum(sal) AS &quot;TOTAL-SALARIES&quot; FROM emp,dept WHERE dept.deptno = emp.deptno GROUP BY dept.deptno ORDER BY 1 </xsql:query>
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113. SQLX