分批讀取Oracle資料

2021-04-13 08:33:15 字數 636 閱讀 7941

問題描述:大量的外部終端通過socket訪問內部的unix伺服器,要求從伺服器的oracle資料庫中得到資料在終端處理顯示。這裡要求socket最大的傳輸量是5000個字元,那麼對於海量資料就要求分批次取得資料並且多次傳輸,怎麼實現呢?

解決方案:首先考慮使用rownum,但是在oracle(version 10g)中,rownum不能使用">", 並且經過簡單測試,發現「order by ***」與 rownum結合起來查詢時,不能確保查詢到的資料一致,順序變了(為什麼?我想可能是先做了select, 然後再做的order by  排序,所以會出現這種情形。真相以後再查證啦..)。所以考慮巢狀select解決rownum不能使用「>」的問題,那麼order by 呢?考慮到rowid是唯一標識記錄的標誌,就用order by rowid吧,簡單測試後,問題貌似解決了。

select

*from

(select

rownum sn, t.

*from

table_name t 

order

byrowid

) where

sn>

5andsn

<=10

等待做進一步的測試...

分批讀取訓練資料進行訓練

訓練集資料量過大受裝置記憶體影響不能將全部資料直接放到網路中進行訓練,需要分批讀取訓練資料。train x為訓練集位址,train y為訓練集標籤,val x為驗證集資料,val y為驗證集標籤。分批讀取函式如下 def dataset split images,labels,batch size ...

java 分批讀取list

public static void main string args system.out.println list int init 1000 每隔1000條迴圈一次 int total list.size int cyceltotal total init if total init 0 sy...

Oracle 分批提交DML

參考於tom程式設計藝術 8.5章在迴圈中提交 1.採用分批操作並不能提高執行速度,執行效率不如單條dml語句。2.分批插入可以減少對undo空間的占用,但頻繁的提交,可能會導致前面提交的undo空間被其他事務占用而可能導致ora 0155錯誤。3.若分批操作中間半截失敗掉,會將你資料庫置於一種未知...