如果在oracle 数据库中遇到使用序列 出现尚未定义的里时。那是因为你在建立序列之后,直接使用.CURRVAL的原因。
因为此时的序列的上一个是0 不符合你定义的1开始值。比如:
-- Create sequence
create sequence T_SEQ
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 20;
如果先使用了nextval,再使用currval就不会抱着个尚未定义的列。
以下在看个实例:
1.nextval与序列关联,表示下一个,如: 创建里一个序列seq_1:#序列一般表示第几行,起标识作用 create sequence seq_1 increment by 1 start with 1 在表中使用此序列: INSERT INTO A VALUES (seq_1.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20); 2.values与insert 连用,标示插入的字段值,如: 有一个表 A,A有三个字段:name,age,sex,都是archar2类型的,则往表中插入数据语句为: insert into A values ('name','age','woman')