sql - таблица - умножение oracle



Как создать и выбрать из таблицы памяти в PL/SQL? (1)

Я использую PL / SQL Oracle и хотел бы создать таблицу памяти, из которой я могу сделать выбор.

Допустим, у меня есть таблица с 20 записями с двумя столбцами: special_id (int), out_date (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 в ЛЮБОМ случае. Мне просто нужно иметь доступ к данным в этой таблице.

Я не включаю в себя реальный код здесь, потому что мне нужно будет сделать много перекодировки работы, чтобы не раздавать информацию о компании.


Как было сказано выше, это может не иметь большого смысла для этого, но вы можете использовать какой-то хэш-файл, чтобы выполнить эту работу за вас. Это использует ассоциативные массивы.

1) заполнить хэш-карту в начале вашей программы

for x in (select out_date, special_id from input_table) loop
   my_hashmap(x.special_id) := x.out_date;
end loop;

2) вместо выбора вы получаете out_date когда вам это нужно, с

curr_out_date := my_hashmap(cursor.special_id);

3) наслаждайтесь, надеюсь, что это поможет сделать plsql более дружелюбным для вас





plsql