|
Sybase SA12, 16: Странная ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
Hi All, Есть две таблицы: Код: sql 1. 2. 3. 4. 5.
и Код: sql 1. 2. 3. 4. 5. 6.
Есть две UDF: запрос с with Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
и запрос без with Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Выполняю в ISQL на Sybase SA 12.0.1.3924 (и младше) или на Sybase SA 16.0.0.1324 запрос Код: sql 1.
- все выполняется нормально. Выполняю в ISQL на Sybase SA 12.0.1.3942 (и выше) или на Sybase SA 16.0.0.1644 этот же запрос Код: sql 1.
- при выполнении получаю ошибку: Could not execute statement. Корреляционное имя 'TEST1' не найдено SQLCODE=-142, ODBC 3 State="42S02" Line 1, column 1 Хотя если этот же запрос с другой UDF Код: sql 1.
выполнить на Sybase SA 12.0.1.3942 (и выше) или на Sybase SA 16.0.0.1644 то ошибка не происходит. Все отличие тут в том, что в FTest1 запрос с with, а в FTest2 запрос без with. Так же ошибка не происходит, если вместо dba.FTest1(TEST1.ID1) сделать dba.FTest1(<любое число>). Вопрос: Почему эта ошибка стала происходить в последних версиях Sybase SA 12.x и 16.x ? Это ошибка самого Sybase SA или это я что то не так делаю ? Ведь в ранних версиях Sybase SA 12.x и 16.x запрос с dba.FTest1(TEST1.ID1) работает без ошибок. Заметил еще один момент: Запрос Код: sql 1.
выдает ошибкуCould not execute statement. Столбец 'X1' не найден SQLCODE=-143, ODBC 3 State="42S22" Line 1, column 1 на всех билдах Sybase SA 12.x и 16.x. Хотя этот же запрос с другой UDF Код: sql 1.
выполняется без ошибок. Опять же не понятно, почему в случае FTest1 столбец 'X1' не найден. Почему эта ошибка происходит ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2013, 14:46 |
|
Sybase SA12, 16: Странная ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
Продолжаю разбираться с этой ошибкой. Похоже что эта ошибка связанна с оптимизатором Sybase SA 12, 16. Если в dba.FTest1 запрос с with окружить пустым условием (if 1 = 1 then <запрос> endif), то есть что бы эта UDF не участвовала в общей оптимизации запроса, то ошибка пропадает. P.S. Может All может связаться с разработчиками и послать им это сообщение об ошибке или хотя бы подскажет как это можно сделать мне ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:44 |
|
Sybase SA12, 16: Странная ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
Up ... Так что, All может что то сказать по этим вопросам ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2013, 20:06 |
|
Sybase SA12, 16: Странная ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
common table expressions http://dcx.sybase.com/1201/en/dbusage/efficient-sql-queries.html Посмотри 2 последних примера ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2013, 00:00 |
|
Sybase SA12, 16: Странная ошибка выполнения запроса
|
|||
---|---|---|---|
#18+
Марсель, Спасибо за ответ. По поводу вашей первой ссылки: Насчет "воды" внутри SP я и сам догадался, что видно из моего второго сообщения в этой теме. Но вопрос, который я задал в этом теме, все равно ведь остается. Что мешает Sybase SA нормально обрабатывать такие запроса ? Ведь в версиях Sybase SA 12.0.1.3924 (и младше) или на Sybase SA 16.0.0.1324 по крайней мере первый запрос выполнятся нормально ... А после последних двух обновлений он вдруг перестал работать. Кстати, разве aid и aID не одно и тоже (с поправкой на регистр конечно) ? Они ведь не заключены в двойные кавычки ... По поводу "2 последних примеров из второй ссылки": Ничего особенного я там не увидел ... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2013, 15:16 |
|
|
start [/forum/topic.php?fid=55&fpage=10&tid=2009909]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
68ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 179ms |
0 / 0 |