首先,先谢谢了
我自定义了一个函数,取当前单据号最大值后再加1,得到一个流水号,
用这个流水号作为新单据的单据号。--取最大值的函数
create or replace function getXSCKsn return varchar2 is
Result varchar2(100);
begin
select max(sn)+1 into Result from test1;
return(Result);
end ;
/之后想用这个函数作为默认值,但是却出错了,如下:Connected to Oracle9i Release 9.2.0.4.0
Connected as mjxcSQL> alter table TEST1 modify SN default getXSCKsn();alter table TEST1 modify SN default getXSCKsn()ORA-02262: 对列默认值表达式进行类型检查时, 出现 ORA-4044SQL>
我自定义了一个函数,取当前单据号最大值后再加1,得到一个流水号,
用这个流水号作为新单据的单据号。--取最大值的函数
create or replace function getXSCKsn return varchar2 is
Result varchar2(100);
begin
select max(sn)+1 into Result from test1;
return(Result);
end ;
/之后想用这个函数作为默认值,但是却出错了,如下:Connected to Oracle9i Release 9.2.0.4.0
Connected as mjxcSQL> alter table TEST1 modify SN default getXSCKsn();alter table TEST1 modify SN default getXSCKsn()ORA-02262: 对列默认值表达式进行类型检查时, 出现 ORA-4044SQL>
create or replace trigger TGNAME
before insert on TABNAME
for each row
begin
:new.SN:= getXSCKsn();
end;如果只是为了流水号自动增长,应该用序列来赋值
这个肯定不行,DDL语句和DML语句不能混用