SQL> CREATE OR REPLACE TRIGGER O 2 BEFORE INSERT 3 ON a1 4 FOR EACH ROW 5 declare 6 com_num NUMBER; 7 BEGIN 8 select count(*) into com_num from a1; 9 DBMS_OUTPUT.PUT_LINE('插入前有:'||com_num||'行'); 10 END O; 11 /触发器已创建SQL> insert into a1 values('aaa'); 插入前有:8行已创建 1 行。
SQL> CREATE OR REPLACE TRIGGER "SCOTT"."TEST" BEFORE INSERT 2 ON "TEST1" 3 FOR EACH ROW 4 declare 5 i number; 6 begin 7 select lpad(test.nextval,4,'0') into :new.id from dual; 8 select count(*) into i from test1; 9 dbms_output.put_line('i=' || i); 10 end; 11 /Trigger created.SQL> commit;Commit complete.SQL> select count(*) from test1; COUNT(*) ---------- 17SQL> set serveroutput on SQL> insert into test1 (zyz1) values ('sdfdsfsd4343f'); i=171 row created.
select lpad(test.nextval,4,'0') into :new.id from dual; 请问(test.nextval,4,'0') 这是什么东西啊? dbms_output.put_line('i=' || i); 这句又是什么意思!请指教!
2 BEFORE INSERT
3 ON a1
4 FOR EACH ROW
5 declare
6 com_num NUMBER;
7 BEGIN
8 select count(*) into com_num from a1;
9 DBMS_OUTPUT.PUT_LINE('插入前有:'||com_num||'行');
10 END O;
11 /触发器已创建SQL> insert into a1 values('aaa');
插入前有:8行已创建 1 行。
2 ON "TEST1"
3 FOR EACH ROW
4 declare
5 i number;
6 begin
7 select lpad(test.nextval,4,'0') into :new.id from dual;
8 select count(*) into i from test1;
9 dbms_output.put_line('i=' || i);
10 end;
11 /Trigger created.SQL> commit;Commit complete.SQL> select count(*) from test1; COUNT(*)
----------
17SQL> set serveroutput on
SQL> insert into test1 (zyz1) values ('sdfdsfsd4343f');
i=171 row created.
请问(test.nextval,4,'0') 这是什么东西啊?
dbms_output.put_line('i=' || i);
这句又是什么意思!请指教!