【问题标题】:Got an Oracle Table Named as Reserved Word, Which problems may arise?得到一个名为 Reserved Word 的 Oracle 表,可能会出现哪些问题?
【发布时间】:2011-06-12 14:54:44
【问题描述】:

我们刚刚外包了一个系统,乍一看我可以看到一些名称为 CASE 或 FROM 的表和字段。它是一个 Oracle 10g 数据库,我们将使用来自 Java、Hibernate、C#、C++ 的数据。

有什么特别需要注意的吗?

对于我在其他帖子中看到的内容,不建议这样做,因为它会影响我们代码的可读性,但是这可能会导致其他任何主要或更严重的问题吗?

谢谢!

【问题讨论】:

    标签: oracle database-design oracle10g data-modeling


    【解决方案1】:

    要在 Oracle 中转义保留字,您需要将它们(在本例中为表名)括在双引号中。即:

    SELECT *
      FROM "CASE"
    

    否则,您将收到“ORA-00903: Invalid table name”错误。 IIRC,Oracle 将双引号内的文本视为区分大小写,因此如果在使用示例查询时以小写形式创建表名,您仍然会收到错误。

    除此之外,我只能看到名称不佳的实体/属性的常见问题。

    【讨论】:

    • 是的,区分大小写是这样做的主要问题。
    • 好的,但是意识到这一点,应该不会发生更大的事情,对吧?我们还处于可以要求更改名称的阶段。值得吗?
    • @Jhurtado:如果您可以更改表名,请务必这样做。我没有使用 ORM 的经验,不知道他们会如何优雅地处理这种情况,但这值得关注。
    • 如果没有令人信服的理由(我真的想不出一个)让对象名称重载保留关键字,那么是的,我相信现在值得更改表名称。跨度>
    • 谢谢大家,我会强烈建议去进行更改。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 2011-08-19
    • 1970-01-01
    • 2014-02-27
    相关资源
    最近更新 更多