2013-08-02 51 views
0

继未能执行是在DDL语句

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

Oracle在DDL语句中不敏感。为了创建表格,我们不能在(“”)双引号中使用字段名称。

sql>create table product_instance (
    "ID" number(19,0)***,*** 
     constraint pro_instance_pk primary key ("ID") 
    ) 

此代码不会在sql promt上执行。 并且在表上应用约束时,数据类型和约束之间不应该有分号。

+1

在DDL *中使用双引号使* Oracle区分大小写。发布的脚本确实运行,因为这是逗号而不是分号;定义表级cronstraint时,逗号是正确的语法。 – APC

1

当您使用引号时,它使列名区分大小写。看到这个question.

+0

当人们使用保留字作为列或表的名字时,这种行为特别讨厌......列名“独占”将不匹配“EXCLUSIVE”,例如, ...:P – AKDADEVIL