簡體   English   中英

為什么此CREATE TABLE語句導致“ORA-00922缺失或無效選項”?

[英]Why does this CREATE TABLE statement cause “ORA-00922 missing or invalid option”?

我使用SQL Developer(工具 - >卸載數據庫)從一個Oracle數據庫導出了一個模式。 它創建了類似於這個的“create table”語句:

CREATE TABLE "APP_USER" 
   (    "ID" NUMBER(*,0), 
    "USERNAME" VARCHAR2(200), 
    "PASSWORD" NVARCHAR2(200), 
    "TYPE" VARCHAR2(20), 
    "FIRST_NAME" VARCHAR2(100), 
    "LAST_NAME" VARCHAR2(100)
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "LIS_DATA" ;

但是當我嘗試在另一個數據庫上執行代碼時,也是從SQL Developer執行,它會觸發“ORA-00922缺失或無效選項”。

顯然查詢的存儲部分有問題(以“SEGMENT”開頭,以“DEFAULT”結尾),因為如果我刪除它就可以了。 但究竟是什么呢?

我只是一個恰好與Oracle合作的應用程序開發人員。 我對SQL很好,但是這個Oracle存儲參數對我來說是個中文。 另外我很困惑,SQL Developer生成無效代碼......

我不熟悉“立即創建片段”。 它似乎是一個11G的功能。 也許您正在嘗試在舊版本數據庫上使用11G功能創建表。

這里

ORA-00922:缺少或無效選項原因:

在定義列或存儲子句時指定了無效選項。 指定列的有效選項為NOT NULL,以指定該列不能包含任何NULL值。 只有約束可能遵循數據類型。 在DATE或LONG數據類型上指定最大長度也會導致此錯誤。 操作:更正語法。 從列或存儲規范中刪除錯誤的選項或長度規范。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM