我有一個Oracle表,其中包含一個包含ASCII字符數據的LONG RAW類型的字段。我如何編寫一個查詢或視圖,將其轉換爲更容易使用的字符串?這些將始終是單字節字符,FWIW。將small-ish Oracle長原始值轉換爲其他類型
1
A
回答
2
也許
select ...., to_lob(long_raw) from old_table
(http://www.psoug.org/reference/convert_func.html)
或
UTL_RAW.CAST_TO_VARCHAR2(b)
0
我發現這句話:
在Oracle9i中,你甚至可以:
ALTER TABLE OLD_TABLE修改(C CLOB );
將其轉換。
在這裏看到:http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1037232794454
編輯
一個VARCHAR2列的最大長度是4000是不是太短了?
0
我發現這在CLOB數據類型上工作得很好。我相信對於LOB類型也是如此。
create or replace function lob2char(clob_col clob) return varchar2 IS
buffer varchar2(4000);
amt BINARY_INTEGER := 4000;
pos INTEGER := 1;
l clob;
bfils bfile;
l_var varchar2(4000):='';
begin
LOOP
if dbms_lob.getlength(clob_col)<=4000 THEN
dbms_lob.read (clob_col, amt, pos, buffer);
l_var := l_var||buffer;
pos:=pos+amt;
ELSE
l_var:= 'Cannot convert. Exceeded varchar2 limit';
exit;
END IF;
END LOOP;
return l_var;
EXCEPTION
WHEN NO_DATA_FOUND THEN
return l_var;
END;
INSERT INTO NEWTABLE (NEWCOLUMN) SELECT RTRIM(lob2char(OLDCOLUMN)) FROM OLDTABLE;
+0
什麼是LOOP? – 2009-01-08 21:59:51
相關問題
- 1. C++將原始表格轉換爲其他表格類型
- 2. 將原始類型轉換爲int
- 3. 長轉換爲原始JDBC
- 4. 將對象轉換爲其他類型
- 5. 將mmapped ByteString轉換爲其他類型?
- 6. 將文件類型轉換爲其原始狀態
- 7. 將封裝類轉換爲原始類
- 8. 如何在oracle中將長的原始數據類型轉換爲可讀格式(oracle版本:11.2.0.3.0)?
- 9. 如何將轉換爲字符串值的[[String]]轉換回原始類型[[String]]?
- 10. 將長整數轉換爲整數而不丟失原始值
- 11. 將文本轉換文件值轉換爲其他類型的Java
- 12. 無法在oracle中將長數據類型轉換爲xml
- 13. 將oracle blob轉換爲xml類型
- 14. 類型轉換爲長
- 15. 將長時間轉換爲DateTime類型
- 16. 原始值轉換
- 17. 將ID列表轉換爲其他值
- 18. 將原始字節轉換爲.NET中的類型
- 19. 將原始數據類型轉換爲NSNumber
- 20. 將輸入數據轉換爲原始數據類型
- 21. Phoenix/Ecto - 將ISO字符串轉換爲utc_datetime原始類型
- 22. 將字符串轉換爲未知的原始類型
- 23. LLDB(Swift):將原始地址轉換爲可用類型
- 24. 如何將PSafeArray項目轉換爲原始類型
- 25. 如何將.NET WebService-Method-Result(Soap)轉換爲其原始數據類型?
- 26. 原始類型轉換,無需拳擊
- 27. 將jQuery轉換爲原型
- 28. 如何將具體語法值轉換爲其他類型的值?
- 29. 將轉換因子轉換爲原始數值
- 30. 如何將XML類型數據轉換爲原始類型數據
現有的和非常脆弱的應用程序當前使用這張表,所以我不想修改現有的表格,因爲害怕敲開卡片房子。 – 2009-01-08 22:05:32