1

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

可以换壳吗?

4

1 回答 1

2

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

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

如果你

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

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

SELECT "MyMixedCaseColumn"
  FROM "foo"

将工作。然而,像

SELECT MyMixedCaseColumn
  FROM foo

将不会。也不会

SELECT "MyMixedCaseColumn"
  FROM "Foo"

通常,如果您不使用区分大小写的标识符,未来的开发人员将不胜感激。不得不在所有地方使用双引号很烦人,而且并不是每个工具或库都已经针对使用区分大小写的标识符的系统进行了测试,因此出现问题并不少见。

于 2013-08-29T23:55:44.123 回答