declare
num number;
begin
SELECT COUNT(*) into num FROM TABLE;

解决方案 »

  1.   

    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 行。
      

  2.   

    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.
      

  3.   

    select lpad(test.nextval,4,'0') into :new.id from dual;
    请问(test.nextval,4,'0') 这是什么东西啊?
     dbms_output.put_line('i=' || i);
    这句又是什么意思!请指教!
      

  4.   

    还有请问各位有那些书介绍ORACLE 的触发器语法的.谢谢