То ли глюки, то ли баги, замечанные в оракле (9ка) в последнее время

Shaman_Naydak
Дата: 26.05.2006 03:17:18
Добрый день, всем.
Наткнулся на такую фишку
Есть переменная типа "nested table", если память мне не изменяет.
NestedTable TABLE OF NUMBER;
И была попытка заставить поучаствовать ее в запросе вида
SELECT *
  FROM NormalTable
  LEFT JOIN TABLE(CAST(NestedTable as TBL_NUMBER))  T
          ON T.COLUMN_VALUE = ID
WHERE T.COLUMN_VALUE IS NULL
Так вот, запрос работал неправильно. То есть выдавал записи, идентификторы которых лежат во вложенной.
Вот так работает правильно:
SELECT *
  FROM NormalTable
  LEFT JOIN (SELECT COLUMN_VALUE FROM TABLE(CAST(NestedTable as TBL_NUMBER)))  T
          ON T.COLUMN_VALUE = ID
WHERE T.COLUMN_VALUE IS NULL
Так вот, вопрос.. Почему такая несправедливость?
Да, и на фига он заставил применить CAST (без него плевался ORA-22905)?

Ситуация № 2. Пляски с ADO провайдерами.
Наткнулся на следующие грабли:
При попытке в команде прогнать текст, содержащий в своем тексте комментарии (лично я прогонял DML, но скорее всего тип запроса роли не играет), оракловый провайдер OraOLEDB.Oracle ругается матом и отказывается платить 15% (С) Воробьянинов..
Майкрософтовский же MSDAORA.1 успешно прогоняет.. правда до тех пор, пока в тексте (хоть в комментариях) не наткнется на знак вопросика. Тады он его он пытается засчитать как параметр и тоже дико не доволен.
Вопрос: Какого лешего у этих программистов руки растут не из того соцветия???
Или это я уже чересчур старый и ни хрена не понимаю в этой жизни.

P.S. Прошу сильно ногами не пинать.. Пишу в четверть четвертого утра в состоянии измененного сознания.
Elic
Дата: 26.05.2006 08:25:54
Shaman_Naydak
LEFT JOIN
Так вот, запрос работал неправильно.
Ansi-join-ы - это ещё то глюкалово. Ищи по форуму.
OlegON
Дата: 26.05.2006 09:49:29
Shaman_Naydak

При попытке в команде прогнать текст, содержащий в своем тексте комментарии (лично я прогонял DML, но скорее всего тип запроса роли не играет), оракловый провайдер OraOLEDB.Oracle ругается матом и отказывается платить 15% (С) Воробьянинов..


А там разрывов строки нет? У меня такая же косячина была. В 8i по умолчанию sqlplus с параметром игнорирования пустых строк, а в 9i - нет.
Кроик Семён
Дата: 05.02.2007 14:47:21
Сегодня имел ту же проблему, что и автор топика (имею ввиду "nested table").

Самое интересное, что один и тот же запрос без проблем выполнялся
в SQL окне PL/SQL Developer'a , а в теле процедуры при открытии
кусрора FOR rec IN (SELECT ...) LOOP ... , как и у втора топика, вызывал ORA-22905.
Решил использованием CAST, но кто бы мог подумать ...

(>>> Oracle 9.2 )