Использование / вызов курсора в другом курсоре - PL / Sql - PullRequest
0 голосов
/ 14 ноября 2011

У меня есть функция с курсором, которая возвращает идентификатор.Мне нужно получить несколько полей в другом курсоре, используя этот результат идентификатора из первого курсора.

Поэтому мой первый курсор:

CREATE OR REPLACE function get_id(id number) 

CURSOR child_id
   IS
       SELECT table1_id
            FROM table1,child
              WHERE child_id = id
          AND table1_id = child_chld_id;

В идеале мой второй курсор должен быть:

cursor grandchild_id
is
select table1_id from table1,child
where child_id = (return value of id from cursor child_id)
and table1_id = child_chld_id; 

Как мне это сделать?

1 Ответ

1 голос
/ 14 ноября 2011

Курсоры могут принимать параметры:

cursor grandchild_id(other_child_id number)
is
select table1_id from table1,child
where child_id = grandchild_id.other_child_id
and table1_id = child_chld_id; 

Когда бы вы ни открывали курсор grandchild_id, просто передайте соответствующее значение в качестве аргумента:

grandchild_id(the_value_you_obtained_from_the_first_cursor)
...