2
我正在使用Oracle的PL/SQL,並希望創建一個內存表,從中我可以選擇。如何在PL/SQL的內存表中創建和選擇?
比方說,我有隻20記錄的表有兩列: special_id(INT),out_date(日期)
我想收集的20條記錄,並堅持在內存中,所以我沒有做同樣的選擇10,000次,我希望能夠在以後訪問這20條記錄。
然後我有一個循環中運行不同的查詢,我想這樣做循環內的以下等效:
select out_date
from in_memory_table
where in_memory_table.special_id = cursor.special_id (where cursor is from my current loop).
注:這是沒有意義的遍歷in_mempry_table在任何情況下。我只需要能夠訪問該表中的數據。
我沒有在這裏包括實際的代碼,因爲我不得不做很多工作記錄,以免泄露公司信息。
你有什麼樣的表格?如果你有一個在SQL中定義的嵌套表,你可以從表中選擇out_date(local_collection_variable),其中......。儘管從SQL中獲取大量數據通常沒有多大意義,但將其加載到PL/SQL VM中,然後再將它們全部推回到SQL VM。我猜想你最好加入你用來填充集合到你的遊標定義中的表中的表。 –
如果有足夠的內存並且足夠頻繁地訪問表,則常規表將自動保存在「內存」(=緩衝區高速緩存)中。您甚至可以告訴Oracle將表的數據固定到緩衝區緩存。 –
我無法使用常規表格,也無法通過連接訪問它。這裏有很多事情會讓這種情況變得困難。我想我只需要使用一種真正的腳本語言,而不是這種稱爲PL/SQL的憎惡。 –