PDA

Ver la Versión Completa : select a columna xml


winzo
23-04-2014, 22:21:09
Hola a todos, tengo una table con una columna de tipo XML, yo insert algo como "<A></A>"

Pero tristemente cuando realize un query lo que obtengo es algo como "3c612f3e".

Mi pregunta es muy punctual, como hago para ver esta columna como una cadena cuando hago mi select?

de antemano gracias a todos

ecfisa
23-04-2014, 22:46:07
Hola winzo.

Revisa si te sirven estos enlaces:

XMLTABLE by example, Part 1: Retrieving XML data in relational format (http://www.ibm.com/developerworks/data/library/techarticle/dm-0708nicola/index.html)
XMLTABLE by example, Part 2: Common scenarios for using XMLTABLE with DB2 (http://www.ibm.com/developerworks/data/library/techarticle/dm-0709nicola/index.html)


Saludos :)

winzo
23-04-2014, 22:57:52
Hola winzo.

Revisa si te sirven estos enlaces:
XMLTABLE by example, Part 1: Retrieving XML data in relational format (http://www.ibm.com/developerworks/data/library/techarticle/dm-0708nicola/index.html)
XMLTABLE by example, Part 2: Common scenarios for using XMLTABLE with DB2 (http://www.ibm.com/developerworks/data/library/techarticle/dm-0709nicola/index.html)
Saludos :)


Creo que no me explique bien, lo que tu tan amablemente me pusiste es como hacer un query sobre una columna XML.


Lo que yo quiero es algo como esto:

1) Tengo una tabla "TABLA" con dos columnas:
id INTEGER
cad XML

2) Hago un insert:
insert into TABLA(id, cad) values(1, "<A>algo</A>")

3) lo que me interesa es que cuando hago este query:

select * form TABLA;

Obtenga un resultado como:

id cad
________________

1 <A>algo</A>


pero en su lugar lo que obtengo es:

id cad
________________

1 12387324


Como puedo obtener la cadena XML original que he puesto al hacer un select?

ecfisa
23-04-2014, 23:49:01
Hola Winzo.

Comprendo... Entonces tal vez te sirva esta información que obtuve en la página de DB2 de IBM:

Casting between data types (http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2z10.doc.sqlref%2Fsrc%2Ftpc%2Fdb2z_castingbetweendatatypes.htm)
XMLCAST en aplicaciones SQLJ (http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.sql.ref.doc%2Fdoc%2Fr0008478.html)
Casting of XMLQUERY results to non-XML types (http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/index.jsp?topic=%2Fcom.ibm.db2.luw.xml.doc%2Fdoc%2Fc0023902.html)

El último enlace, en especial, presenta un ejemplo muy sugerente:

SELECT R.Pid
FROM PURCHASEORDER P, PRODUCT R
WHERE R.NAME = XMLCAST(XMLQUERY('$d/PurchaseOrder/item/name' PASSING P.PORDER AS "d") AS VARCHAR(128))

Me disculpo por no ser mas específico pero jamás usé DB2.

Saludos :)

winzo
24-04-2014, 00:00:12
Hola Winzo.

Comprendo... Entonces tal vez te sirva esta información que obtuve en la página de DB2 de IBM:
Casting between data types (http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2z10.doc.sqlref%2Fsrc%2Ftpc%2Fdb2z_castingbetweendatatypes.htm)
XMLCAST en aplicaciones SQLJ (http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.sql.ref.doc%2Fdoc%2Fr0008478.html)
Casting of XMLQUERY results to non-XML types (http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/index.jsp?topic=%2Fcom.ibm.db2.luw.xml.doc%2Fdoc%2Fc0023902.html)El último enlace, en especial, presenta un ejemplo muy sugerente:
Código SQL [-] (http://clubdelphi.com/foros/#)SELECT R.Pid FROM PURCHASEORDER P, PRODUCT R WHERE R.NAME = XMLCAST(XMLQUERY('$d/PurchaseOrder/item/name' PASSING P.PORDER AS "d") AS VARCHAR(128))

Me disculpo por no ser mas específico pero jamás usé DB2.

Saludos :)



No te disculpes de nada amigo, estás ayudando.:cool:


Bueno, pues ya había ahondado en esas cosas, pero sigue siendo obtener contenido de un xml de una columna, yo quiero obtener la cadena completa que guardo, el XML completo

orodriguezca
24-04-2014, 01:49:15
Prueba con esto:
select ID, XMLSERIALZE(cad) as MI_XML from TABLA

en DB2 for i funciona.