[英]SQL xmltype breaks when where clause added
我正在尝试在SQL Developer(或SQL * plus)中运行查询以选择clob字段(clobField)的一部分。 为此,我首先使用xmltype,然后使用extract()。 但是,当我尝试用where子句将我的第一次选择子集化时,它会中断。
这两个语句成功运行:
select ID
from table
where ID in ('1','2','3')
select ID, xmltype(clobField) as myXmlField
from table
但这不是:
select ID, xmltype(clobField) as myXmlField
from table
where ID in ('1','2','3')
产生的错误是:
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at line "SYS.XMLTYPE", line 271
ORA-06512: at line 1
06502. 00000 - "PL/SQL: numeric or value error%s"
据此,我认为myXmlField被初始化为错误的类型,并被提供了一些意外的信息。 注意,clobField中缺少值。 任何指针都将很受欢迎。
==============================更新================== ==================
从这个问题的答案中,我可以使用以下代码使其起作用:
select ID, xmltype.createXML(clobField) as myXmlField
from table
where ID in ('1','2','3')
但是,这并不能解决为什么这样的奥秘
select ID, xmltype(clobField) as myXmlField
from table
可以,但是当您添加where子句时无效! 我现在还使用SQL * plus运行该语句,以检查这是否可能是SQL开发人员的事情。 错误仍然出现
最后,这是仅执行前几行的组合。 最终,通过使用createXML方法(即xmltype.createXML(clobField)
解决了该问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.