java.lang.ClassCastException: weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB cannot be cast to java.lang.String


最近開發中遇到個問題,在開發自身環境下是沒問題的,但是在測試庫中報錯:java.lang.ClassCastException: weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB cannot be cast to java.lang.String,經過定位是由於某個字段的sql查詢語句不對,但是在開發庫中是沒問題的,那么自然就會想到是數據庫的差異了,利用SELECT * FROM v$version;在開發和測試庫分別查詢后發現,開發庫是10g而測試庫是11g,經查得知,原來是因為,在10.2.0.4.0(不包括)之后的WMSYS.WM_CONCAT查詢出來的是CLOB類型的,因此需要進行to_char再進行distinct,order by,union等等其他操作,或者是換個方法:concatstr()和WM_CONCAT()方法是一樣的效果。

以下列出查詢例子以供理解

SELECT replace(concatstr(t.c_membercode||':'||t.c_membername),',',';') FROM tothermember T;

 

 

 SELECT replace(wm_concat(t.c_membercode||':'||t.c_membername),',',';') FROM tothermember T;

 

 

 SELECT replace(to_char(wm_concat(t.c_membercode||':'||t.c_membername)),',',';') FROM tothermember T;

 

 簡單介紹一下:wm_concat函數:簡單理解就是:將列轉為行。此處要做的一個功能就是:查表做數據字典。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM