PL / SQL错误触发auto_increment

时间:2014-03-24 17:37:14

标签: oracle plsql oracle11g

我正在尝试auto_increment下表中的cust_id字段:

CREATE TABLE A113222813_CUSTOMERS (
CUST_ID  NUMBER(10)  PRIMARY KEY,
CUST_FNAME VARCHAR2(20),
CUST_SNAME VARCHAR2(20),
CUST_UNAME  VARCHAR2(30)  NOT NULL,
CUST_PASS  VARCHAR2(40)  NOT NULL
)

我创建了以下序列并触发处理:

CREATE SEQUENCE CUST_SEQ START WITH 1 INCREMENT BY 1 NOCYCLE;

CREATE OR REPLACE TRIGGER CUST_TRG 
BEFORE INSERT ON A113222813_CUSTOMERS 
FOR EACH ROW 
BEGIN
:NEW.CUST_ID := CUST_SEQ.NEXTVAL;
END;

但它不断抛出以下错误:

Error(2,30): PLS-00357: Table,View Or Sequence reference 'CUST_SEQ.NEXTVAL' not allowed   
in this context

知道我做错了吗?

1 个答案:

答案 0 :(得分:0)

在11g之前这是不可能的。您可以在11g之前的常规作业中使用sequence_name.NEXTVAL,以及以下内容:

 select CUST_SEQ.NEXTVAL into :NEW.CUST_ID from   dual;