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

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

Más 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
 

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

Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 

Último (20)

Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 

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