ddl语句中的oracle区分大小写[重复]
Posted
技术标签:
【中文标题】ddl语句中的oracle区分大小写[重复]【英文标题】:Is oracle case sensitive in ddl statements [duplicate] 【发布时间】:2013-08-02 09:25:04 【问题描述】:以下执行失败
create table product_instance (
"ID" number(19,0),
constraint pro_instance_pk primary key ("id")
)
给出输出
SQL Error: ORA-00904: "id": invalid identifier
00904. 00000 - "%s: invalid identifier"
但是将“id”更改为“ID”效果很好
create table product_instance (
"ID" number(19,0),
constraint pro_instance_pk primary key ("ID")
)
以下也可以正常工作
create table product_instance (
ID number(19,0),
constraint pro_instance_pk primary key (id)
)
感谢是否有人可以回答在 DDL 语句中指定“ID”而不是仅 id 的效果。 oracle 区分大小写还是不区分大小写
【问题讨论】:
【参考方案1】:当您使用引号时,它会使列名区分大小写。看到这个question.
【讨论】:
当人们使用保留字作为列或表的名称时,这种行为尤其令人讨厌......列名“exclusive”将不匹配“EXCLUSIVE”,例如...:P【参考方案2】:Oracle 在 DDL 语句中是不敏感的。创建表时,我们不能在 ("") 双引号中使用字段名。
sql>create table product_instance (
"ID" number(19,0)***,***
constraint pro_instance_pk primary key ("ID")
)
此代码不会在 sql promt 上执行。 并且要对表应用约束,数据类型和约束之间不应有分号。
【讨论】:
在 DDL 中使用双引号 使 Oracle 区分大小写。发布的脚本确实运行,因为那是逗号而不是分号;定义表级 cronstraint 时,逗号是正确的语法。以上是关于ddl语句中的oracle区分大小写[重复]的主要内容,如果未能解决你的问题,请参考以下文章