Oracle - 表名和列 - 我可以更改外壳吗?

时间:2013-08-29 23:47:53

标签: database oracle oracle11g oracle-sqldeveloper

默认情况下 - 所有oracle表名和列是否都以大写形式存储?

我可以换成套管吗?

1 个答案:

答案 0 :(得分:2)

在数据字典中,是的,标识符默认转换为大写。

您可以通过创建case-sensitive identifiers来更改该行为。这样做通常不是一个好主意,但你可以。为此,您需要在创建对象时以及每次要引用它们时将表名和列名括在双引号中。您还需要正确设置外壳,因为标识符区分大小写,与正常的不区分大小写的行为不同。

如果你

CREATE TABLE "foo" (
  "MyMixedCaseColumn" number
);

然后表名和列名将以混合大小写的形式存储在数据字典中。您将来需要使用双引号来引用任一标识符。所以

SELECT "MyMixedCaseColumn"
  FROM "foo"

会奏效。但是,像是

SELECT MyMixedCaseColumn
  FROM foo

不会。也不会

SELECT "MyMixedCaseColumn"
  FROM "Foo"

通常,如果您不使用区分大小写的标识符,未来的开发人员将不胜感激。令人讨厌的是必须在整个地方使用双引号,并且并非每个工具或库都针对使用区分大小写的标识符的系统进行了测试,因此破坏事件的情况并不少见。