没有问题啊SQL> CREATE OR REPLACE TRIGGER testname
2 before insert
3 on tb for each row
4 DECLARE
5 nfolderno number(8);
6 newfolderno varchar2(10);
7 BEGIN
8 SELECT nvl(MAX(id),0) into newfolderno FROM tb;
9 nfolderno:= TO_NUMBER(newfolderno);
10 nfolderno:=nfolderno+1;
11 newfolderno:=TO_CHAR(nfolderno,'00000000');
12 :new.id:=newfolderno;
13 END;
14 /触发器已创建
SQL> insert into tb values(10);已创建 1 行。SQL> insert into tb values(10);已创建 1 行。SQL> select * from tb;ID
--------------------
00000001
00000002SQL> insert into tb values(10);已创建 1 行。SQL> insert into tb values(10);已创建 1 行。SQL> select * from tb;ID
--------------------
00000001
00000002
00000003
00000004SQL>
估计是你的数据有问题,
你执行SELECT MAX(folder_no) FROM test; 看看是数字吗?
2 before insert
3 on tb for each row
4 DECLARE
5 nfolderno number(8);
6 newfolderno varchar2(10);
7 BEGIN
8 SELECT nvl(MAX(id),0) into newfolderno FROM tb;
9 nfolderno:= TO_NUMBER(newfolderno);
10 nfolderno:=nfolderno+1;
11 newfolderno:=TO_CHAR(nfolderno,'00000000');
12 :new.id:=newfolderno;
13 END;
14 /触发器已创建
SQL> insert into tb values(10);已创建 1 行。SQL> insert into tb values(10);已创建 1 行。SQL> select * from tb;ID
--------------------
00000001
00000002SQL> insert into tb values(10);已创建 1 行。SQL> insert into tb values(10);已创建 1 行。SQL> select * from tb;ID
--------------------
00000001
00000002
00000003
00000004SQL>
估计是你的数据有问题,
你执行SELECT MAX(folder_no) FROM test; 看看是数字吗?
解决方案 »
- oracle中使用dblink合并表问题
- 求教数据库设计问题!!!急!急!急!
- 如果捕捉异常并继续循环
- 【oracle】请教:translate('a&b','t{}','pp')输出结果
- Oracle导出多个表时如何判断列名是否存在
- oracle高手进来指点一二啊,很简单的问题
- 在Linux 上安装的 oracle 怎样启动图形介面的 PL/SQL 呢?
- 我想把一个表改名字拷贝为另外一个表,Oracle的SQL语句如何写?
- 有关临时表问题(请帮忙从一个SQLServer 2000的一个语句改到Oracle中来)
- 请问oracle触发器可以使用视图吗?
- 关于sql_trace
- 请问:存储过程中能不能返回游标呢?
newfolderno:=LTRIM(TO_CHAR(nfolderno,'00000000'));