在一個舊的應用程式(沒有可用的源代碼)中,超過 40.000 個字符的長文本存盤在 Oracle 資料庫中型別為 的表列中LONG RAW。我們現在想要將文本傳輸到另一個 Oracle 資料庫并想要顯示它們的內容。不知何故,舊應用程式能夠做到這一點。但是,我們總是遇到 4000 位元組的限制......
我們如何以人類可讀VARCHAR2(或多個)的形式匯出/匯入和顯示內容。
我們嘗試過的所有轉換功能都不起作用。例如TO_LOB或TO_CLOB。
ORA-00932: Inconsistent datentype: - expected, LONG BINARY found
ORA-00932: Inconsistent datentype: CHAR expected, LONG BINARY found
uj5u.com熱心網友回復:
從檔案中:
TO_LOB 將 long_column 列中的 LONG 或 LONG RAW 值轉換為 LOB 值。您只能將此函式應用于 LONG 或 LONG RAW 列,并且只能應用于 INSERT 陳述句中子查詢的選擇串列中。
所以你不能這樣做:
select to_lob(old_column) from old_table;
ORA-00932: Inconsistent datentype: - expected, LONG BINARY found
但是您可以將資料移動到另一個表的 BLOB 列中:
insert into new_table(new_column)
select to_lob(old_column) from old_table;
db<>小提琴
一旦將資料作為 BLOB 進行管理,您就可以將其作為二進制值進行管理,或者如果它表示文本,則可以使用包將其轉換為 CLOB - 使用適當的字符集dbms_lob。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/516034.html
標籤:甲骨文oracle11g
