我有一个表(AKADMIN),其中有一个名称为 XML 的 XMLTYPE 列。
我想在此列中使用 getClobVal()。

select t.xml.getClobVal() /**/
,      t.xml.getClobVal() --
,      t.xml.getClobVal() as clobval
,      t.xml.getClobVal()
from akadmin t where ROWID = 'AAAQc6AAIAAAADDAAA' ;

在结果集中,前 4 列给出 CLOB 类型,但第五列给出 XMLTYPE。我必须在 getClobVal() 之后键入任何注释或别名以更正结果的 (CLOB) 类型。为什么?

另一个问题,当我离开 tablename 的别名时:
select xml.getClobVal()
from akadmin t where ROWID = 'AAAQc6AAIAAAADDAAA' ;

它抛出一个 ORA-00904 string: invalid identifier嗯...

有人有任何想法吗?

关于环境的附加信息:
Oracle 数据库 11g 企业版 11.2.0.4.0 版;
PL/SQL 开发人员 10.0.5.1710

但是在我们的 Java 应用程序中通过 OJDBC6 尝试了这个,结果相同

最佳答案

您应该将 xml 放在括号中:

select (xml).getClobVal() from akadmin;

为我工作

关于oracle - 神秘的 getClobVal(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26465260/

10-12 18:06