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 более дружелюбным для вас