Я работаю над пакетом, который вернет два курсора. Один курсор - это список элементов с числовым первичным ключом. Другой курсор находится список файлов, связанных с деталямиИспользовать Oracle Cursor в Proc и вернуть его?
кодекса до сих пор:
procedure get_items_with_files(
o_results out sys_refcursor,
o_files out sys_refcursor
) is
begin
begin
open o_results for
select item_id,
item_name
from items;
end;
begin
open o_files for
select item_id
item_file_name
from item_files if
where if.item_id in (select item_id from TABLE(CAST(o_results)));
end;
end get_items_with_files;
Области Я бегу в проблемы с:
- Получение отсутствуют ошибки ключевых слов на столе (cast (курсор)) section
- Могу ли я получить доступ к курсору в коде как мне, или мне нужно его скопировать во внутреннюю переменную? Я попытался создать переменную типа sys_refcursor и «установить v_cursor: = o_results», но получил недостающую или недопустимую ошибку параметра.
спасибо. Увидев ожидаемый результат, я повторно проанализировал код. В то время как мои фактические курсоры намного сложнее выбирают, чем примеры, я понял, что могу просто сделать вложенный выбор в поле, которое мне нужно, из таблицы, о которой я беспокоюсь. – SpaceCowboy74
О, что касается множества курсоров, это потому, что я не могу вернуть несколько строк для каждого элемента в первом курсоре. Это одно требование. Я мог бы, вероятно, сделать SQLFu и сделать список имен файлов выданным с запятой, но я решил, что конечный пользователь может просто использовать два набора данных в datatable в конечном счете. (есть несколько файлов на элемент) – SpaceCowboy74