pl / sql доллар оператор? - PullRequest
       25

pl / sql доллар оператор?

3 голосов
/ 30 сентября 2008

Сегодня утром я столкнулся со следующим ddl в сценарии pl / sql:

создать индекс genuser.idx $$ _ 0bdd0011 ...

Первоначально я думал, что имя индекса было сгенерировано инструментом ... но я также не суперзвезда pl / sql, поэтому вполне могу ошибаться. Имеет ли двойной знак доллара какое-либо особое значение в этом утверждении?

Ответы [ 3 ]

2 голосов
/ 30 сентября 2008

Ваша первоначальная мысль кажется правильной. Это будет выглядеть как индексное имя, сгенерированное инструментом (но не назначенное Oracle, потому что индексное имя не указано). Знаки доллара не имеют какого-либо особого значения, кроме того, что они являются действительными символами, которые редко используются разработчиками-людьми, и поэтому удобны для снижения риска того, что сгенерированное системой имя конфликтует с сгенерированным человеком именем.

2 голосов
/ 30 сентября 2008

Независимо от того, откуда он взялся, это противоречит документированному совету Oracle: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/sql_elements008.htm#SQLRF00223

Oracle настоятельно не рекомендует использовать $ и # в идентификаторах без кавычек

2 голосов
/ 30 сентября 2008

Нет особого значения или значения.

SQL> create table t (col number)
  2  /

Table created.

SQL> create index idx$$_0bdd0011 on t(col)
  2  /

Index created.

Примечание. CREATE INDEX - это оператор DDL, который обычно выполняется в сценарии SQL, а не в PL / SQL.

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