Оракул: Что такое "(+) ="? - PullRequest
5 голосов
/ 16 декабря 2010

В настоящее время у меня нет доступа к книгам Oracle, и мои поиски в Интернете не дают никаких результатов ((+) в Google ничего не показывает).Я просматриваю существующий код для добавления некоторых полей в запрос и вижу:

AND lookup.LookupID (+) = AuditID

Однако я понятия не имею, что это делает.Буду признателен за любую помощь.

Примечание: я не вижу флажок вики сообщества при публикации этого в Google Chrome, поэтому, если кто-то может изменить его на меня, я был бы благодарен.Спасибо.

Ответы [ 2 ]

7 голосов
/ 17 декабря 2010

То, что вы видите, это «старый» способ указания внешнего соединения.Oracle нужен синтаксис для представления внешних объединений, и, прежде чем комитет ANSI установит стандартный синтаксис, Oracle придумал свой собственный.

(+) следует видеть только в устаревшем коде, и сегодня рекомендуется просто избегатьэтот синтаксис и придерживаться стандартов.

В этом Oracle FAQ вы можете прочитать некоторую историческую информацию.Не слишком подробно, но это даст вам представление о том, как появился этот оператор.

Соответствующая часть:

В query2 мы видим синтаксис Oracle «старого стиля» для OUTER-ПРИСОЕДИНИТЬСЯ.Это знак ПЛЮС в скобках.Этот синтаксис на самом деле не был изобретен Oracle, а скорее каким-то умным парнем, имя которого ускользает от меня в данный момент.Oracle понимал его ценность и был одним из первых пользователей OUTER-JOIN, но для этого требовалось, чтобы они использовали синтаксис, прежде чем ANSI SQL COMMITTEE остановился на одном.Новый и улучшенный ANSI SQL хорош, и все, некоторые говорят, даже лучше, но будучи старой птицей, я склонен придерживаться старых и проверенных способов, пока что-то не заставит меня измениться.

Очевидно, даже Oracle не сделалпридумать этот синтаксис.Хорошо иметь стандарты ...

4 голосов
/ 16 декабря 2010

Это способ Oracle указать внешнее соединение (ANSI будет RIGHT JOIN / LEFT JOIN)

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