我今天早上在pl / sql脚本中遇到了以下ddl:
创建索引genuser.idx $$ _ 0bdd0011 ...
我最初的想法是索引名称是由工具生成的...但我也不是pl / sql超级巨星,所以我很可能是不正确的。双重美元符号在本声明中是否有任何特殊意义?
答案 0 :(得分:2)
没有特殊意义或重要性。
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中执行。
答案 1 :(得分:2)
您最初的想法似乎是正确的。这看起来是由工具生成的索引名称(但未由Oracle分配,因为未指定索引名称)。美元符号除了是人类开发人员很少使用的有效符号之外没有任何特殊含义,因此可以方便地降低系统生成的名称与人工生成的名称冲突的风险。
答案 2 :(得分:2)
无论他的名字来自哪里,都与甲骨文的书面建议相反:http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/sql_elements008.htm#SQLRF00223
Oracle强烈建议您不要在非引用标识符中使用$和#