2017-04-10 65 views
0

OracleのSQLDeveloperを使用していて、いくつかのテーブルを作成しようとしています。 私の目標は、たとえば、自動生成されたIDと説明とともに単純なテーブルを作成することです。Oracle SQL自動生成ID主キー

CREATE TABLE xpto (
id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, 
description VARCHAR2(200) NOT NULL 
); 

私が取得しています:

Error report - 
SQL Error: ORA-02000: missing (keyword 
02000. 00000 - "missing %s keyword" 

私が間違っているかもしれないものの任意のアイデアを? ありがとうございます!

+2

あなたはそのためのOracle 12.1が必要です。どのOracleのバージョンを使用していますか? –

+0

Oracle IDE 4.1.5.21.78 –

+0

これはSQLクライアントのバージョンです** **ご使用のOracle **サーバーのバージョン** –

答えて

1

識別列は、Oracleがバージョン12cからサポートしている機能です。それが動作しないOracleの11で
、あなたはこのように、シーケンスとトリガーを使用する必要があります。

CREATE TABLE xpto (
id NUMBER PRIMARY KEY, 
description VARCHAR2(200) NOT NULL 
); 

CREATE SEQUENCE xpto_seq; 

set define off 
CREATE OR REPLACE TRIGGER xpto_id 
BEFORE INSERT ON xpto 
FOR EACH ROW 
WHEN (new.id IS NULL) 
BEGIN 
    :new.id := xpto_seq.nextval; 
END; 
/
関連する問題