2013-08-02 52 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