ORA-00972:标识符太长 - 在 Oracle 11g 中的表列上添加注释时



我想使用以下sql句子在列上添加注释。

COMMENT ON COLUMN EMPLOYEES.EMPLOYEE_ID IS "Primary key of employees table"

这是一个非常简单的示例,取自 Oracle 11g 的示例模式。需要注意的重要一点是,我在双引号之间指定了实际注释。这会在执行命令时给出此错误。

ORA-00972: identifier is too long
*Cause:    An identifier with more than 30 characters was specified.
*Action:   Specify at most 30 characters.

但是,如果我将双引号替换为单引号,即使注释长度超过 30 个字符,它也不会运行任何错误。

COMMENT ON COLUMN EMPLOYEES.EMPLOYEE_ID IS 'Primary key of employees table XD'

我不知道这种行为的原因是什么,你能帮我吗?

单引号之间的一系列字符是一个字符串。 双引号之间的一系列字符是标识符。 标识符可以是表名、列名、数据类型等。

如果您尝试使用标识符,Oracle 会尝试解析该标识符。 在这种情况下,它会抛出标识符无效的错误(因为它太长(,然后抛出标识符无效的错误,因为没有名为"Primary key of employees table"的表,或者在引发标识符在该特定 SQL 语句中的特定点无效的错误之前,因为comment语句需要一个字符串。 从理论上讲,Oracle可能会抛出任何这些错误。 只是从工作流的角度来看,在尝试分析特定 DDL 语句的语法之前,执行适用于所有 SQL 语句的操作(解析标识符(更有意义。

最新更新