'CREATE OR REPLACE TRIGGER trigger' || table_name ||
            'AFTER INSERT OR DELETE OR UPDATE ON '|| table_name ||
            'FOR EACH ROW
            DECLARE
              v_Value system_tableaudit.CONTENT%TYPE;
             BEGIN
               dbms_output.put_line(table_name);
             END;';改成下面这样试试
'CREATE OR REPLACE TRIGGER trigger''' || table_name ||
            '''AFTER INSERT OR DELETE OR UPDATE ON '''|| table_name ||
            '''FOR EACH ROW
            DECLARE
              v_Value system_tableaudit.CONTENT%TYPE;
             BEGIN
               dbms_output.put_line('table_name');
             END;'

解决方案 »

  1.   

    create or replace procedure create_main_trigger(table_name in varchar2)
     is
       strSql varchar2(4000) := '';
     begin
      strSql := 'CREATE OR REPLACE TRIGGER trigger' || table_name ||
                ' AFTER INSERT OR DELETE OR UPDATE ON '|| table_name ||
                ' FOR EACH ROW
                 DECLARE
                  v_Value system_tableaudit.CONTENT%TYPE;
                 BEGIN
                   dbms_output.put_line('''||table_name||''');
                 END;';
                execute immediate strSql;
    end;
    /
      

  2.   

    strSql := 'CREATE OR REPLACE TRIGGER trigger '||table_name||'_tri 
                AFTER INSERT OR DELETE OR UPDATE ON  '||table_name||
                'FOR EACH ROW
                 DECLARE
                  v_Value system_tableaudit.CONTENT%TYPE;
                 BEGIN
                   dbms_output.put_line('||table_name||');
                 END';
    --还要足够权限grant create any trigger to user_name;
      

  3.   

    sorry,笔误dbms_output.put_line('''||table_name||''');
                 END;';
      

  4.   

    bobfang(匆匆过客) 和 beckhambobo(beckham)写的是对的。我已经试过了,呵呵,谢谢!!
    而且要有创建触发器的权限!!!