2017-04-20 974 views
0
select '' as sys_policy_value_id, '' as value from table(sys.dbms_debug_vc2coll $POLICY_DEF_NAMES$) ap 
UNION 
select TO_CHAR(p.sys_policy_value_id), p.value from policy_value p 

這裏p.value是CLOB。所以我得到這個例外。ORA-01790:表達式必須與對應的表達式具有相同的數據類型

如果我使用to_char('p.value')那麼我得到numberFormat異常。如果我將''的值更改爲null,那麼該值將比我獲得ora-00932 inconsistent datatypes expected - got clob的值更大。

嘗試與聯盟所有以及但不工作。

回答

-1

使用的DBMS_LOB.substr(p.value,4000)。這是工作。

+0

「它正在工作」不正確。如果'p.value'有超過4000個字符,那麼你正在截斷它 - 你需要什麼?這不是正確的解決方案;正確的解決方案是在'union'的第一部分選擇'to_clob('')',然後按原樣選擇'p.value'。 – mathguy

+0

它不適合我,得到同樣的例外。 –

+0

@mathguy它與UNION ALL而不是UNION一起工作。我也有一個外部選擇來結合UNION的結果,並且UNION ALL也不起作用。你有什麼主意嗎? –

相關問題