Oracle数据库中表名的$$签名有什么用处

时间:2013-12-30 06:47:19

标签: sql oracle

我得维护一个应用程序,它使用$$符号作为前缀和后缀来创建表语句中的某些单词 - Oracle DB。像

  

create table $$ temp $$(id int)

出于测试目的,我在SQL plus中运行了语句但是它抛出了无效的字符错误,所以我不得不删除$$符号,然后按预期运行。

$$是否有特定用途?与会话相关的一些事情?

2 个答案:

答案 0 :(得分:6)

您可以使用表名称create table "$$tmp$$"(id int)周围的双引号引用非标准字符来创建和删除表格。不,$没有任何特殊含义,除了用户不应该使用它,因为各种内部表的名称都包含$(想想v $ session)。 $应该避免名称冲突。

答案 1 :(得分:6)

  

$$

是否有特定用途

不,没有。但是,动态效果视图的名称中只有一个美元符号$v$sql。这是Oracle的选择。

您将无法创建一个以美元符号($)开头的表格,因为任何非带引号的标识符都应以字母字符开头。但是,如果用双引号括起来,可以强制Oracle接受以非字母字符开头的标识符,如下所示

create table "$$temp$$"(
  id int
)

但应该注意的是,当您使用双引号创建表时,您使该表名区分大小写(除非您没有以大写形式键入表名),并且在使用双引号时总是必须使用双引号引用该表。