簡體   English   中英

在Clob字段中查詢XML

[英]Query XML in Clob Field

我有此查詢,但是當我將左外部聯接 與XML一起使用時,它不起作用,請您能幫我解決它嗎?

錯誤:ORACLE SQL開發人員

ORA-00932: inconsistent datatypes: expected - got CLOB
00932. 00000 -  "inconsistent datatypes: expected %s got %s"
*Cause:    
*Action:

查詢:

SELECT
xmltype(x.texto_extenso).extract('/Datos/ID/text()').getclobVal() ID
,xmltype(x.texto_extenso).extract('/Datos/TITULAR/text()').getclobVal() Nombre
,xmltype(x.texto_extenso).extract('/Datos/CS/text()').getclobVal() LLAVE_JEFE
,xmltype(x2.texto_extenso).extract('/Datos/TITULAR/text()').getclobVal() NOMBRE_JEFE

 FROM testXML x
 LEFT OUTER JOIN testXML x2 
 ON xmltype(x.texto_extenso).extract('/Datos/CS/text()').getclobVal() = 
    xmltype(x2.texto_extenso).extract('/Datos/ID/text()').getclobVal()

 WHERE x.LLAVE_TIPO_TEXTO = 11635;

表定義:

create table testXML (
llave_texto varchar2(20) 
,llave_tipo_texto varchar2(20) 
,texto_extenso clob default empty_clob()
);

插入:

 insert into testXML values ('1','11635','<Datos><ID>1</ID><TITULAR>Gobernador</TITULAR><CS>0</CS></Datos>');
 insert into testXML values ('2','11635','<Datos><ID>2</ID><TITULAR>Acapulco</TITULAR><CS>1</CS></Datos>');
 insert into testXML values ('3','11635','<Datos><ID>3</ID><TITULAR>Cuernavaca</TITULAR><CS>1</CS></Datos>');
 insert into testXML values ('4','11635','<Datos><ID>4</ID><TITULAR>Coyoacán</TITULAR><CS>1</CS></Datos>');

嘗試這個。

WITH tst
     AS (SELECT x.LLAVE_TIPO_TEXTO,
                xmltype (x.texto_extenso).EXTRACT ('/Datos/ID/text()').getclobVal ()
                   ID,
                xmltype (x.texto_extenso).EXTRACT ('/Datos/TITULAR/text()').getclobVal ()
                   Nombre,
                xmltype (x.texto_extenso).EXTRACT ('/Datos/CS/text()').getclobVal ()
                   LLAVE_JEFE
           FROM testXML x)
SELECT x.ID,
       x.Nombre,
       x.LLAVE_JEFE,
       x2.NOMBRE NOMBRE_JEFE
  FROM tst x
       LEFT OUTER JOIN tst x2 ON TO_CHAR (x.LLAVE_JEFE) = TO_CHAR (x2.ID)
 WHERE x.LLAVE_TIPO_TEXTO = 11635;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM