在Oracle表中我有一個很長的原始列。插入與選擇不起作用,因爲長的原始列也是我的選擇語句的一部分。基本上我試圖插入歷史記錄行以更改幾個參數。因此我想在Oracle中使用PL/SQL。我沒有PL/SQL的經驗,也沒有Google搜索幾天之後的任何經驗。任何人都可以幫我解決我的問題PL/SQL示例?提前致謝 !!!在Oracle中插入具有長原始列的歷史記錄行的PL/SQL
3
A
回答
3
LONG和LONG RAW數據類型已被棄用,並且已經存在很多年了。你離開他們真的好得多。儘管如此,如果您使用的是PL/SQL,那麼您將被限制爲32,760字節的數據,這是LONG RAW PL/SQL數據類型所能容納的最大值。但是,LONG RAW數據庫數據類型最多可以容納2GB的數據。因此,如果您的表中的任意行包含的數據長度超過32,760字節,您將會使用PL/SQL檢索它,而不是而不是。這是LONG和LONG RAW數據類型的一個基本限制,也是Oracle不贊成使用它的原因之一。
在這種情況下,唯一的選擇是Pro * C或OCI。
更多信息可以在這裏找到: http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/datatypes.htm#CJAEGDEB
希望有所幫助。
2
您可以用LONG RAW列直接在PL/SQL的工作,如果你的數據被限制爲32KB:
FOR cc IN (SELECT col1, col2... col_raw FROM your_table) LOOP
INSERT INTO your_other_table (col1, col2... col_raw)
VALUES (cc.col1, cc.col2... cc.col_raw);
END LOOP;
如果任何LONG RAW超過32K這將失敗。
在這種情況下,您將不得不使用其他語言。你可以使用java,因爲它包含在數據庫中。我已經回答了幾個問題上所以用LONG RAW和java:
- Copying data from LOB Column to Long Raw Column(將LONG RAW到LONG RAW工作過,只是用INSERT替換UPDATE)
- Get the LENGTH of a LONG RAW
無論如何,你已經注意到使用這種數據類型是一件痛苦的事情。如果無法轉換爲LOB,則必須使用解決方法。
相關問題
- 1. 插入新的歷史記錄行
- 2. 在長的原始列中插入值
- 3. 從Git歷史記錄中刪除具有歷史記錄的特定文件
- 4. 將歷史記錄插入新表
- 5. 沒有行號的Bash歷史記錄
- 6. 在oracle中記錄plsql表中記錄的新記錄
- 7. PL SQL觸發器在列更新時插入歷史記錄
- 8. 在Oracle表中插入具有不同語言值的記錄
- 9. TFS簽入歷史記錄
- 10. 得到oracle中所有的sql歷史記錄10g
- 11. GWT歷史記錄:歷史記號
- 12. Eclipse運行歷史記錄
- 13. 更新的記錄被插入到歷史表中不老的記錄
- 14. 如何在SQL Server中的歷史記錄表中存儲歷史記錄
- 15. 如何在列和表格中保持插入和更新的歷史記錄?
- 16. 插入歷史表 - oracle SQL - PL/SQL
- 17. VSO git文件歷史中的「簡單歷史記錄(默認)」和「完整歷史記錄」有什麼區別?
- 18. 記住輸入歷史記錄
- 19. 在MySql中查詢的歷史記錄
- 20. Nhibernate的歷史記錄
- 21. 帶歷史記錄的EditText
- 22. 用SQL將行插入到歷史表中的速記
- 23. 插入瀏覽器的歷史記錄條目
- 24. 如何插入查詢以保持活動的歷史記錄?
- 25. 如何查看插入錶的歷史記錄?
- 26. 包含/插入子模塊的Git歷史記錄提交
- 27. Oracle數據庫包編譯歷史記錄和錯誤記錄
- 28. 插入遊戲歷史記錄頁面中的所有遊戲者標籤。
- 29. 始終啓動沒有歷史記錄的新活動實例
- 30. 爲什麼會將iframe的歷史記錄添加到歷史記錄中