Они точно такие же в вашем примере. Из документации :
Каждый объект базы данных имеет имя. В операторе SQL вы представляете имя объекта с заключенным в кавычки идентификатором или не заключенным в кавычки идентификатором .
Идентификатор в кавычках начинается и заканчивается двойными кавычками ("). Если вы называете объект схемы с помощью идентификатора в кавычках, то вы должны использовать двойные кавычки, когда ссылаетесь на этот объект.
Идентификатор без кавычек не заключен в знаки препинания.
Вы можете использовать идентификаторы в кавычках или без кавычек для именования любого объекта базы данных. ...
и
Идентификаторы без кавычек не чувствительны к регистру. Oracle интерпретирует их как прописные. Идентификаторы в кавычках чувствительны к регистру.
Таким образом, ORDER_NO
не заключен в кавычки и не учитывает регистр, и Oracle обрабатывает имя как заглавную - так эффективно, когда он ищет в словаре данных соответствующее имя столбца (в представлении all_tab_columns
), он ищет точное строковое значение 'ORDER_NO'
. Это также относится к случаю, если у вас не было кавычек order_no
или Order_No
или любого другого сочетания падежа; поскольку он не заключен в кавычки, Oracle по-прежнему рассматривает его как прописные и ищет внутри 'ORDER_NO'
.
"ORDER_NO"
указан в кавычках, поэтому он чувствителен к регистру, но, так как он в любом случае заглавным, он не имеет значения Oracle все еще ищет в словаре данных столбец с именем 'ORDER_NO'
.
Если фактический идентификатор объекта (например, имя столбца) находится в верхнем регистре в словаре данных, то не имеет значения, если вы в любом случае предоставляете его как идентификатор без кавычек или как идентификатор в кавычках в верхнем регистре.
То, что вы не можете сделать, это использовать кавычки и другой регистр. "ORDER_NO"
в порядке; "order_no"
или "Order_No"
или любой другой в кавычках смешанный регистр не будет соответствовать тому, что есть в словаре данных.
Хотя вы можете создавать объекты с указанными в кавычках идентификаторами, которые не в верхнем регистре (или которые включают или начинаются с иным образом недопустимых символов, как показано в правилах, перечисленных в этой документации), обычно это считается плохой идеей, так как тогда всегда должны использовать кавычки и точно такой же регистр. А так же документация также отмечает:
Oracle не рекомендует использовать заключенные в кавычки идентификаторы для имен объектов базы данных. Эти указанные в кавычках идентификаторы принимаются SQL * Plus, но они могут быть недействительными при использовании других инструментов, управляющих объектами базы данных.