2011-12-05 38 views
3

我已經使用SQL Developer從一個Oracle數據庫導出了一個模式(工具 - >卸載數據庫)。它創造了「創建表」類似這樣的語句:爲什麼此CREATE TABLE語句導致「ORA-00922丟失或無效選項」?

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生成無效的代碼...

回答

8

我不熟悉「段立即創建」。它似乎是一個11G功能。也許你正試圖使用​​舊版本數據庫上的11G功能創建表格。

+0

我想你釘了它。我從我出口的數據庫是11g,我試圖導入到10g。謝謝 ! –

-1

HERE

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

的選項無效是在定義的列或存儲子句指定 。指定列的 中的有效選項爲NOT NULL,用於指定列不能包含任何空值的 。數據類型後面只有約束。 指定DATE或LONG數據類型的最大長度也會導致 此錯誤。操作:更正語法。從列或存儲規範中刪除錯誤的選項或長度規範 。