powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / нужен совет как подружить bulk collect into и nested tables
8 сообщений из 8, страница 1 из 1
нужен совет как подружить bulk collect into и nested tables
    #32192839
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервер 8.1.7

Я хочу получить массив элементов одним select
вот что пытался сделать
Это в теле пакета:
есть тип
type obs_array is table of obs_deal.vob_typ%type;

есть переменная
vob_typ_array obs_array;

Вот что мне нужно:

select t1.vob_type bulk collect into vob_typ_array from obs_deal t1 ,table(linked_to) t2 where t2.deal_ref=weezer.deal_ref and t1.obs_sost='OK'

Но так как linked_to это вложенная таблица, то в теле
процедуры выполнить такой select нельзя.

Я МОГУ написать курсор в dbms_sql, но это слишком громоздко.

Можно ли выполнить такой select в динамическом sql
с эффектом bulk collect into?
(Что-то типа execute immediate sqltext bulk collect into ... ;_) )

Спасибо.
...
Рейтинг: 0 / 0
нужен совет как подружить bulk collect into и nested tables
    #32192879
Simon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читаем оракловский хелп

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE TYPE Coords AS OBJECT (x NUMBER, y NUMBER);
CREATE TABLE grid (num NUMBER, loc Coords);
INSERT INTO grid VALUES( 10 , Coords( 1 , 2 ));
INSERT INTO grid VALUES( 20 , Coords( 3 , 4 ));
DECLARE
TYPE CoordsTab IS TABLE OF Coords;
pairs CoordsTab;
BEGIN
SELECT loc BULK COLLECT INTO pairs FROM grid;
 -- now pairs contains (1,2) and (3,4)
 
END;
...
Рейтинг: 0 / 0
нужен совет как подружить bulk collect into и nested tables
    #32192895
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты просто не понял что мне нужно
и поспешил с ответом.
Прочитай ещё раз.
Я же спросил, можно ли выполнить
В ДИНАМИЧЕСКОМ SQL

:-)
...
Рейтинг: 0 / 0
нужен совет как подружить bulk collect into и nested tables
    #32192912
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOP.

SY
...
Рейтинг: 0 / 0
нужен совет как подружить bulk collect into и nested tables
    #32192943
Gri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Gri
Гость
V Oracle 9 mozno
...
Рейтинг: 0 / 0
нужен совет как подружить bulk collect into и nested tables
    #32192954
Gri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Gri
Гость
Syntax for Dynamic Bulk Binds
Bulk binding lets Oracle bind a variable in a SQL statement to a collection of values.
The collection type can be any PL/SQL collection type (index-by table, nested table,
or varray). However, the collection elements must have a SQL datatype such as
CHAR, DATE, or NUMBER. Three statements support dynamic bulk binds: EXECUTE
IMMEDIATE, FETCH, and FORALL.
Bulk EXECUTE IMMEDIATE
This statement lets you bulk-bind define variables or OUT bind arguments passed as
parameters to a dynamic SQL statement. The syntax follows:
EXECUTE IMMEDIATE dynamic_string
[[BULK COLLECT] INTO define_variable[, define_variable ...]]
[USING bind_argument[, bind_argument ...]]
[{RETURNING | RETURN}
BULK COLLECT INTO bind_argument[, bind_argument ...]];
...
Рейтинг: 0 / 0
нужен совет как подружить bulk collect into и nested tables
    #32192963
Фотография Oleg Afanasiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 SY:
Я так и думал :-(
Сделал курсор open.... for...

2Gri:

Вот из доки по 8i(я их тоже читаю :-) )

EXECUTE IMMEDIATE dynamic_string
[INTO {define_variable[, define_variable]... | record}]
[USING [IN | OUT | IN OUT] bind_argument
[, [IN | OUT | IN OUT] bind_argument]...]
[{RETURNING | RETURN} INTO bind_argument[, bind_argument]...];


А ты , видимо,взял из 9i :-)
...
Рейтинг: 0 / 0
нужен совет как подружить bulk collect into и nested tables
    #32192966
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Gri:

Thanks, now I'll know.

SY.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / нужен совет как подружить bulk collect into и nested tables
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]