我正在使用Oracle SQL Developer中的LONG
列,此列包含需要刪除的回車符。使用後,我發現了錯誤:無法使用REPLACE函數刪除LONG數據類型列中的回車符
REPLACE (col_name , CHR(13) , '')
是:
ORA-00932:不一致的數據類型:預期CHAR了LONG 00932. 00000 - 「不一致的數據類型:有望%S得了%的」
有沒有解決方法?
回答或建議將不勝感激!
我正在使用Oracle SQL Developer中的LONG
列,此列包含需要刪除的回車符。使用後,我發現了錯誤:無法使用REPLACE函數刪除LONG數據類型列中的回車符
REPLACE (col_name , CHR(13) , '')
是:
ORA-00932:不一致的數據類型:預期CHAR了LONG 00932. 00000 - 「不一致的數據類型:有望%S得了%的」
有沒有解決方法?
回答或建議將不勝感激!
對於LONG數據類型列,您幾乎不能執行任何操作。您應該將它們轉換爲CLOB。你只是找到了一個原因。
https://docs.oracle.com/cd/B28359_01/appdev.111/b28393/adlob_long_lob.htm
有一個to_lob()
函數LONG轉換爲CLOB,但只能在一個insert
語句的select
部分被使用(即,它只能被用於將LONG列轉換爲CLOB列)。轉換後,在生成的CLOB上使用文本函數應該沒有問題。你可能也想看看具體CLOB函數在DBMS_LOB包:
http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_lob.htm#ARPLS600
非常感謝!我可以使用插入語句將其轉換爲CLOB,然後使用TO_LOB函數。 –
酷!現在真正的問題是:你是否經常使用LONG值,或者這是一件非常罕見的事情?如果您需要經常與他們合作,您可能需要轉換爲CLOB(因爲Oracle在過去的20年中一直在催促我們),或者影響那些有權做出這一決定的人。尋找與LONG一起工作的變通辦法浪費了更多的時間,資源和金錢,而不是一勞永逸地轉變成LONG的過程。祝你好運! – mathguy