Добрый день, всем.
Наткнулся на такую фишку
Есть переменная типа "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. Прошу сильно ногами не пинать.. Пишу в четверть четвертого утра в состоянии измененного сознания.