Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Associative array и Select  [new]
Обучающийся
Guest
Уважаемые форумчане,
прошу подсказать правильный способ помещения результатов выборки в ассоциативный массив.

Есть простая таблица, скажем
create table Entity
(et_id NUMBER,
 et_name VARCHAR2(100));

insert into Entity values (1, 'bla');
insert into Entity values (2, 'Bye-bye');
insert into Entity values (3, 'Come back');
insert into Entity values (4, 'See you late');
insert into Entity values (5, 'Good-bye');
insert into Entity values (6, 'Hello');

и есть хранимая процедура, скажем

TYPE it_ids IS TABLE OF INTEGER INDEX BY BINARY_INTEGER;

procedure test (pi_ids IN OUT it_ids) AS
begin
  NULL;
end;

Необходимо в хранимой процедуре изящно поместить результаты выборки et_id из Entity в pi_ids.

Способ пройтись по всему курсору выборки и поместить его в pi_ids понятен. Есть ли более "изящное" решение?
Заранее спасибо
9 ноя 07, 14:00    [4896924]     Ответить | Цитировать Сообщить модератору
 Re: Associative array и Select  [new]
Elic
Member

Откуда:
Сообщений: 29990
Обучающийся
Способ пройтись по всему курсору выборки и поместить его в pi_ids понятен. Есть ли более "изящное" решение?
Есть менее: bulk-fetch и проход по этому промежуточному массиву.
9 ноя 07, 14:12    [4897039]     Ответить | Цитировать Сообщить модератору
 Re: Associative array и Select  [new]
Обучающийся
Guest
Elik, можно пример? Я не понял о каком промежуточном массиве идет речь
9 ноя 07, 14:18    [4897098]     Ответить | Цитировать Сообщить модератору
 Re: Associative array и Select  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Имеется ввиду, что bulk collect into не умеет помещать поля в индекс массива. Соответственно можно с помощью BULK (одной операции) поместить в другой массив, где индекс будет просто икрементальный, а потом переписать в Ваш :)
Но , как уже было сказано, лучше остановиться на Вашем варианте :)
9 ноя 07, 14:45    [4897371]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить