Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];

Вниз

Тип 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
1-94479
Ross
2002-04-15 19:58
2002.04.29
Что я делаю не так?


3-94276
Glonia Zbanov
2002-04-08 11:19
2002.04.29
проблемы русского языка


1-94493
Satrap
2002-04-14 18:22
2002.04.29
MDI-приложение


1-94425
GBF
2002-04-15 15:05
2002.04.29
Как несколько файлов упаковать в один внешний


4-94614
ebeden
2002-02-23 01:51
2002.04.29
Перехват нажатий клавиш





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский