Oracle表名中带有$符号的问题

15

在Sql Developer中,我看到表,但是有些表的名称中带有$符号。

例如:

  tb$something

在表名称中,"$"符号代表什么意思?


1
Oracle 通过 x$ 结构创建 v$ 视图。实际的 v$ 视图创建视图定义位于 $ORACLE_HOME/rdbms/admin 目录中,因此您可以查看 v$ 视图是如何基于 x$ 结构构建的。 - Gaurav Soni
1
有时我会使用 $ 符号,例如 EMPLOYEE$JNEMPLOYEE 的日志表。唯一的缺点是创建表的脚本不能包含 $ 符号,否则 SQL*Plus 会报错。 - Jeffrey Kemp
3个回答

12

这并没有什么意义。如果您愿意,可以使用美元符号创建表格(可能不建议这样做,因为人们可能会混淆它们与Oracle特殊表格)。

如果您是指由 SYSSYSTEM 拥有的对象,则Oracle为其内存结构视图命名例如 V$ (例如 v$session )。但这些只是Oracle公司为其对象使用的命名约定。


3
Oracle强烈不建议您在非引用标识符中使用$和#。http://docs.oracle.com/cd/E11882_01/server.112/e10592/sql_elements008.htm - Sergey Mirvoda

11

包含前缀V$的表是存储易失性信息的表。

易失性信息是在oracle实例使用时(使用意味着实例正在运行)产生的。易失性信息包括统计信息、用户会话信息、内存分配等。


6
通常,这些是属于数据库的表格——要么因为它们归某个预定义用户所有(如SYS,...),要么因为Oracle将其用于内部管理,例如:

  • 全文索引(这些命名为DR $ ...)
  • 物化视图日志(这些命名为RUPD $ ...和MLOG $ ...)

但您不能依赖该规则,因为(正如DazzaL已经提到的),您可以创建自己带有美元符号的表格。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接