Oracle PL / SQL Bulk Собрать в один столбец коллекции на основе условия - PullRequest
1 голос
/ 28 ноября 2011

У меня есть следующая таблица в одной схеме: User_Codes(useri_id, user_code). Я хочу получить доступ к этой таблице из другой схемы в хранимой процедуре и минимизировать количество обращений между схемами.

В сохраненном процессе у меня есть коллекция, содержащая пользовательские данные вместе с идентификаторами пользователей. Я хочу получить соответствующие user_codes из другой схемы, используя user_ids. Предполагая, что rowset является коллекцией или таблицей SQL, содержащей пользовательские данные с заполненными user_ids и заполняемыми user_codes, я хочу что-то вроде этого:

select uc.user_code
bulk collect into rowset.user_code
from other_schema.user_codes uc
where uc.user_id in (
 select distinct rowset_table.user_id
 from table(rowset) rowset_table
 where rowset_table.user_id is not null
);

Возможно ли это?

1 Ответ

0 голосов
/ 29 ноября 2011

Просто дикое предположение, но, может быть, это работает для вас:

select rs.user_id, uc.user_code
  bulk collect into rowset
  from other_schema.user_codes uc, table(rowset) rs
  where uc.user_id = rs.user_id;
...