ORA-00972: идентификатор слишком длинный - при добавлении комментария к столбцу таблицы в Oracle 11g - PullRequest
0 голосов
/ 20 января 2020

Я хочу добавить комментарий к столбцу, используя следующее предложение 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'

Я не знаю, что причина такого поведения в том, вы можете мне помочь?

1 Ответ

3 голосов
/ 20 января 2020

Ряд символов между одинарными кавычками - это строка. Ряд символов между двойными кавычками является идентификатором. Идентификатором будет имя таблицы, имя столбца, тип данных и т. Д. c.

Если вы попытаетесь использовать идентификатор, Oracle попытается разрешить этот идентификатор. В этом случае выдается ошибка о том, что идентификатор недействителен (потому что он слишком длинный), прежде чем выдает ошибку о том, что идентификатор недействителен, потому что нет таблицы с именем "Primary key of employees table" или до выдачи ошибки что идентификатор недопустим в этой конкретной точке в этом конкретном операторе SQL, потому что оператор comment ожидает строку. Теоретически, Oracle может выдать любую из этих ошибок. Просто с точки зрения рабочего процесса более целесообразно выполнять операции, которые применяются ко всем операторам SQL (разбор идентификаторов), прежде чем пытаться анализировать синтаксис конкретного оператора DDL.

...