FETCH ... BULK COLLECT INTO ... [LIMIT rows] - не работает, почему ???

Totos
Дата: 07.06.2006 11:07:17
Мне нужно передать резельтат выполенния запроса в коллекцию.

Делаю:
select ...
bulk collect into <имя коллекции>
froм ...
where ...

- все компилируется нормально, а если объявляю курсор на этот select, а потом делаю:

open <имя курсора>
fetch <имя курсора> bulk collect into <имя коллекции>
close <имя курсора>

- не компилируется, пишет :
PLS-00597 : expression 'имя коллекции' in the INTO list is of wrong type.

В чем дело ???
alex-ls
Дата: 07.06.2006 11:28:30
а как коллекция объявлена? в обоих случаях :)
Totos
Дата: 07.06.2006 11:40:30
alex-ls - большой привет.

А что касается коллекции, то :

type TYPE_FOR_RECORD is record
(
PROJ_AID SOSTAV.SOS_PROJ_AID%type,
COUNT_PC SOSTAV.SOS_COUNT_PC%type,
POSITION SOSTAV.SOS_POSITION%type,
PART_AID SOSTAV.SOS_PART_AID%type,
DESIGNATION V_ARTICLES.DESIGNATIO%type,
NAME V_ARTICLES.NAME%type,
OKP_CODE V_ARTICLES.OKP_CODE%type,
RAZDEL V_ARTICLES.SECTION_ID%type,
PURCHASED V_ARTICLES.PURCHASED%type,
ART_VER_NUM LOAD_SP.LSP_VERSION%type,
NOTE SOSTAV.SOS_NOTE%type
);

type TYPE_FOR_EXPORT IS TABLE OF TYPE_FOR_RECORD;

Но в обоих случаях используется одна и та жа коллекция.
dmidek
Дата: 07.06.2006 11:48:33
Пожалуйста 2 полных или репро- варианта в студию
alex-ls
Дата: 07.06.2006 11:50:31
может там какой устаревший тип у Вас? типа Long или чего такое... Типы распишите плиз...
Totos
Дата: 07.06.2006 11:57:00
Полные вариант процедуры, которая экспортирует данные приложена в файле.

Это к старому вопросу:
Totos
Дата: 07.06.2006 12:01:56
Забыл файл.

И вопрос
Totos
Дата: 07.06.2006 12:02:57
Старый вопрос :

http://www.sql.ru/forum/actualthread.aspx?tid=301611
dmidek
Дата: 07.06.2006 12:09:16
Ну они не совсем одинаковые, у Вас во втором случае появился UNION.

Попутно два вопроса
1. Зачем group by ?
2. Зачем UNION ?

Не хотите ли переписать так (возможно , добавив DISTINCT (?))

select SOST_PROJ_AID, SOST_COUNT_PC, SOST_POSITION, SOST_PART_AID, DESIGNATIO, NAME, OKP_CODE, SECTION_ID, PURCHASED, ART_VER_ID, SOST_NOTE
  	  from SOSTAV_TEMP, V_ARTICLES
               where SOST_PART_AID = ART_ID
Totos
Дата: 07.06.2006 12:14:18
А вторая часть запроса (после UNION) по-идее ничего не возвращает.

К сожалению сейчас проверить не могу - сервер отключили.