2014-10-20 857 views
2

我有一個表(AKADMIN),其中XMLTYPE列的名稱是XML。 我想在此列中使用getClobVal()。 神祕的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)類型的結果。爲什麼?

另一個問題,當我離開的表名的別名:

select xml.getClobVal() 
from akadmin t where ROWID = 'AAAQc6AAIAAAADDAAA' ; 

它拋出一個ORA-00904 string: invalid identifier 嗯...

沒有任何人有任何想法?

有關環境的添加信息: Oracle Database 11g企業版版本11.2.0.4.0; PL/SQL開發人員10.0.5.1710

但通過OJDBC6在我們的Java apllication試圖與相同的結果

+0

第二部分是因爲期限[使這看起來像兩件](http://docs.oracle.com/cd/E18283_01/server.112/e17120/general008.htm)和第一部分('xml')無法解決。包含表名/別名使*表示第一部分。其餘的,你如何確定你回來的數據類型?你在哪裏執行這個,你在哪裏看到類型?如果您創建了一個視圖(例如)並描述該視圖,則所有四列都是「CLOB」。所以真的不知道你在做什麼...... – 2014-10-20 13:13:36

+0

我試過這個: 'Select xmlsomething.getClobVal()From(選擇xml作爲xml的東西來自AKADMIN_v v Where Rowid ='AAAQc6AAIAAAADDAAA');' – 2014-10-20 14:40:19

+0

我嘗試了原來的select in PL/SQL Developer的SQL窗口。 PL/SQL Developer [結果網格](http://pichost.me/1916289/) – 2014-10-20 14:48:56

回答

1

你應該把XML中一個括號:

select (xml).getClobVal() from akadmin; 

作品對我來說

+1

它可以工作(但我不明白它...) – 2017-05-26 08:46:53