powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / CR-Oracle: Ошибка при вычислении SQL Expression
1 сообщений из 1, страница 1 из 1
CR-Oracle: Ошибка при вычислении SQL Expression
    #35318262
Фотография A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crystal Reports 9.2.3.970, Oracle 9.2.0.7.0
При использовании в SQL Expressions подзапроса выдается ошибка ORA-00904, если в подзапросе упоминается поле, одноименное с полем "основного" запроса, и это имя уточнено именем таблицы или псевдонима .

Условный пример:
1) Создаем пустой отчет, добавляем в него таблицу user_tables
2) Создаем SQL Expression, выбирающее имя некоторого "первого" констрэйнта таблицы:
Код: plaintext
1.
2.
(select constraint_name
from user_constraints cnstr
where table_name="USER_TABLES"."TABLE_NAME" and rownum< 2 )

Все работает! Если посмотреть Database -> Show SQL Query... , то увидим сформированный Crystal'ом запрос:
Код: plaintext
1.
2.
3.
 SELECT "USER_TABLES"."TABLE_NAME", ((select constraint_name
from user_constraints cnstr 
where table_name="USER_TABLES"."TABLE_NAME" and rownum< 2 ))
 FROM   "SYS"."USER_TABLES" "USER_TABLES"

3) Модифицируем SQL Expression, заменяя
Код: plaintext
where table_name="USER_TABLES"."TABLE_NAME" and rownum< 2 
на
Код: plaintext
where cnstr.table_name="USER_TABLES"."TABLE_NAME" and rownum< 2 

То есть мы всего навсего уточнили поле table_name псевдонимом cnstr.
По идее запрос, который должен сформировать в этом случае Crystal, должен остаться абсолютно корректным. Однако получаем:

Код: plaintext
1.
Error in compliling SQL Expression:
Query Engine Error: 'ORA-00904: "USER_TABLES"."TABLE_NAME": invalid identifier'.

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

Интересует, куда копать в поисках причин возникновения ошибки.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / CR-Oracle: Ошибка при вычислении SQL Expression
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]