SlideShare uma empresa 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]

Mais conteúdo relacionado

Mais procurados (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
 

Destaque (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
 

Semelhante a Oracle XMLDB Funcionalidades (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
 

Mais de Hermes Romero

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.pdfHermes Romero
 
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íaHermes Romero
 
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 ágilHermes Romero
 
Agile talent management
Agile talent managementAgile talent management
Agile talent managementHermes 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 ágilHermes Romero
 
Intalligent, Agile Talent Management
Intalligent, Agile Talent ManagementIntalligent, Agile Talent Management
Intalligent, Agile Talent ManagementHermes Romero
 
Introducción a Microstrategy
Introducción a MicrostrategyIntroducción a Microstrategy
Introducción a MicrostrategyHermes 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 tutorialHermes Romero
 
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??Hermes Romero
 
Fundamentos de DataWarehouse
Fundamentos de DataWarehouseFundamentos de DataWarehouse
Fundamentos de DataWarehouseHermes Romero
 
Metodologias de desarrollo
Metodologias de desarrolloMetodologias de desarrollo
Metodologias de desarrolloHermes Romero
 
Desarrollo de sistemas
Desarrollo de sistemasDesarrollo de sistemas
Desarrollo de sistemasHermes Romero
 
Introducción a Business objects
Introducción a Business objectsIntroducción a Business objects
Introducción a Business objectsHermes Romero
 

Mais 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

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 

Último (15)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 

Oracle XMLDB Funcionalidades

  • 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