) в качестве курсора и избегайте таблицы и функции PL / SQL, которые, кажется, добавляют ненужную сложность. Но я отклоняюсь от первоначального вопроса.
вопрос более или менее совпадает сэто
В заголовке пакета:
Объявлен следующий тип строки:
TYPE exch_row IS RECORD(
currency_cd VARCHAR2(9),
exch_rt_eur NUMBER,
exch_rt_usd NUMBER);
И этот тип таблицы:
TYPE exch_tbl IS TABLE OF exch_row INDEX BY BINARY_INTEGER;
Добавлена переменная:
exch_rt exch_tbl;
В корпусе упаковки:
Заполните эту переменную таблицы некоторыми данными.
В процедуре в теле пакета:
Я хочу использовать следующее утверждение:
CURSOR c0 IS
SELECT i.*, rt.exch_rt_eur, rt.exch_rt_usd
FROM item i, exch_rt rt
WHERE i.currency = rt.exchange_cd
Как это сделать в Oracle?
Примечания
На самом деле я ищу решение 'Table Variable' в MSSQL:
DECLARE @exch_tbl TABLE
(
currency_cd VARCHAR(9),
exch_rt_eur NUMBER,
exch_rt_usd NUMBER)
)
И используйте эту переменную таблицы внутри моей StoredProcedure.