Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.29;
Скачать: CL | DM;

Вниз

Тип TABLE - как его использовать в where   Найти похожие ветки 

 
{bas}   (2002-04-04 15:59) [0]

Привет всем!
Я создаю тип TYPE tt IS TABLE OF NUMBER(10);
затем хочу внего записать что-то и ипользовать в операторе where
в следуюющем запросе:
как это сделать или кто-использовал орокловские массивы(TABLE,VARRAY) в where - м. его нельзя использовать в where(но тогда теряется смысл массивов)
Даю примерный код как я это делаю

DECLARE
TYPE tt IS TABLE OF NUMBER(10);
iop_tb_nea_id tt;
ip_nI_id Number(10);
v_max_BS NUMBER(10);--ExAcc.NEA_POSBUYCNT%TYPE;

BEGIN
ip_nI_id := 21;
SELECT ea.nea_id
BULK COLLECT INTO iop_tb_nea_id
FROM ExAcc ea
WHERE nI_Id=ip_nI_id;

SELECT NEA_POSBUYCNT
INTO v_max_BS
FROM ExAcc
WHERE NI_ID = ip_NI_ID
AND NEA_POSBUYCNT-NEA_POSSELCNT <> 0
AND nEA_id in (select t.* from TABLE(iop_tb_nea_id) t)/*без последней строчки работает отлично даже ничего не говорит*/;
END;
/

PS массив iop_tb_nea_id не пустой у него iop_tb_nea_id.count() = 3


 
XCB   (2002-04-04 16:48) [1]

попробуй
SELECT NEA_POSBUYCNT
INTO v_max_BS
FROM ExAcc
WHERE NI_ID = ip_NI_ID
AND NEA_POSBUYCNT-NEA_POSSELCNT <> 0
AND nEA_id in (iop_tb_nea_id)


 
{bas}   (2002-04-04 16:48) [2]

Народ - ну чем нибудь помогите....
Очень надо


 
{bas}   (2002-04-04 16:54) [3]

>XCB
Пробовал
ORA-06550: line 22, column 10:
PLS-00383: type mismatch found at "NEA_ID" inside an IN or NOT IN clause


 
{bas}   (2002-04-04 18:28) [4]

Ну кто-нить дайте совет


 
petr_v_a ©   (2002-04-04 20:07) [5]

попробуйте
tt описать в словаре ( через create type )
и написать
in (select COLUMN_VALUE
from TABLE(cast(iop_tb_nea_id as tt))


вообще подобные вещи PL/SQL ( 8.1.7.2.5) не особо любит, иногда не компилит с PL/SQL internal error ( по-моему PLS-801 )

!!!! писал навскидку если где скобок не хватает :) и т.п. прошу не бить!


 
{bas}   (2002-04-04 21:48) [6]

>>petr_v_a
А что делать если у меня именно такая но не при комниляции, а при исполнении

как Вы предлагаете я сто раз делал уже ::((( как я только не извращался с этими TABLE & CAST & so on

В другом форуме была мысль, что Personal Oracle не поддерживает эту фичу - а у меня именно он ->>>> что на это кто скажет


 
{bas}   (2002-04-05 10:47) [7]

Ну что продолжим????....................


 
{bas}   (2002-04-05 13:25) [8]

Ну неужели никто не сталкивался с подобной проблемой
ДАЙТЕ ХОТЬ КАКОЙ_НИБУДЬ СОВЕТ


 
petr_v_a ©   (2002-04-05 13:40) [9]

Enterprise Edition глючит так же (:
Иногда помогает дополнительная вложенность select`ов, универсального способа подсказать не могу, глюк он и есть глюк. Кстати, производительность запросов к table of в 8.1.7 оставляет желать сильно лучшего, на маленьких полностью кешированных таблицах select из физ.таблицы может оказаться даже быстрее, как это ни парадоксально


 
usr   (2002-04-08 23:45) [10]

Попробуйте VALUE:
... AND nEA_id EXISTS (select VALUE(t) from TABLE(iop_tb_nea_id) t)



Страницы: 1 вся ветка

Текущий архив: 2002.04.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
14-94556
BAHO
2002-02-21 05:14
2002.04.29
Самая злая проблемма !


1-94442
lipskiy
2002-04-05 21:43
2002.04.29
Как описать входной параметр процедуры многовариантно?


14-94557
DJ X
2002-03-19 14:56
2002.04.29
modern-talking-online.de


14-94546
yakshe
2002-03-05 04:37
2002.04.29
Необычный вопрос.


3-94305
Uncle SAM
2002-04-09 00:40
2002.04.29
A не работет такая схема......