Что заставило бы этот запрос перестать работать? - PullRequest
2 голосов
/ 27 января 2010

Я работаю с устаревшим Java-приложением, которое извлекает данные из Oracle. Один из запросов больше не работает:

select {hier.*} from ecadmin.dept_hier_cache hier
connect by prior parent_deptid = deptid
start with deptid = '1234';

Когда я убираю скобки '{}' вокруг *, все работает как обычно. Теперь, насколько я могу судить, приложение не менялось более года, так что это означает, что изменение Oracle является наиболее вероятным виновником. Любые идеи о том, что могло бы измениться? Обновление версии, настройка была изменена, что-то еще?

Ответы [ 2 ]

4 голосов
/ 28 января 2010

Насколько я могу сказать, что никогда бы не работал. Это никогда не был действительный синтаксис, и я не могу понять, почему кто-то даже попробует фигурные скобки в коде.

Если у вас есть контроль версий, я бы проверил, была ли когда-либо версия кода без скобок. Если так, я подозреваю, что код изменился в исходном коде, но никогда не продвигался.

Возможно, строка была отфильтрована / очищена перед выполнением.

Можете ли вы сказать, когда он перестал работать и что произошло в тот день?

0 голосов
/ 28 января 2010

Единственное, что я вижу в синтаксисе фигурных скобок с Oracle и JDBC, находится здесь под Встроенный синтаксис SQL92 . Как говорит Гэри, я бы не ожидал, что этот запрос будет выполняться сразу же.

Но, возможно, изменился базовый драйвер Oracle или версия Oracle? Изменились ли столбцы в этой таблице dept_hier_cache, чтобы .* теперь возвращал нечто совершенно иное, чем раньше?

Является ли dept_hier_cache представлением? Если да, изменились ли представления или права пользователей в отношении этого представления?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...