Oracle mechanics

19.12.2011

Антибаг: Ora-00918 после обновления на 11g

Filed under: bugs,commonplace,Oracle — Игорь Усольцев @ 23:55
Tags: ,

При обновлении Oracle 10.2.0.4 -> 11gR2 неожиданно сталкиваемся с интересной ошибкой:

11.2.0.3@SQL> select group_id
2    from (select user_mode.group_id
3            from USERS_LIST U
4           inner join user_state
5              on user_state.user_id = U.user_id
6           inner join user_mode
7              on user_mode.mode_id = user_state.mode_id
8           where USER_STATUS_ID = 1
9             and USER_ID = 87960018
10           order by user_mode.group_id desc)
11   where rownum < 2
12  /
and USER_ID = 87960018
*
ERROR at line 9:
ORA-00918: column ambiguously defined

— ошибка вполне справедливая — столбец USER_ID действительно присутствует в двух таблицах, соединяемых в запросе с использованием ANSI варианта INNER JOIN.

Но в версии 10.2 тот же запрос безошибочно выполняется!

10.2.0.4@SQL> select group_id
2    from (select user_mode.group_id
3            from USERS_LIST U
4           inner join user_state
5              on user_state.user_id = U.user_id
6           inner join user_mode
7              on user_mode.mode_id = user_state.mode_id
8           where USER_STATUS_ID = 1
9             and USER_ID = 87960018
10           order by user_mode.group_id desc)
11   where rownum < 2
12  /

GROUP_ID
----------
8

1 row selected.

Как описывается в Query Fails With Ora-00918 After Upgrade to 11g [ID 835701.1] изменение это — ожидаемое и сделано в качестве исправления бага: в версии 10.2 некоторые честные пользователи жаловались на то, что при использовании ANSI JOIN ошибка ORA-918 как раз не выдавалась при использовании неточно определённого (ambiguously defined) стобца!

Добавить комментарий »

Комментариев нет.

RSS feed for comments on this post. TrackBack URI

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

Блог на WordPress.com.

%d такие блоггеры, как: