如:delete from table1.想用存储过程实现这个功能,将table1作为参数传入存储过程,请问这个存储过程该怎么写?

解决方案 »

  1.   

    使用动态sql:在oracle8.1.5中:
    用execute immediate来实现
    tsql:='delete from '||tablename;//tablename是参数
    execute immediate tsql;
      

  2.   

    也可以用dbms包函数实现,类似上面的方法。
      

  3.   

    create or replace procedure running(tbname char)
    as
    tblnm char(50);
    strsql char(50);
    begin
    tblnm:=tbname;
    strsql:='delete from  '||rtrim(tblnm);
    dbms_output.put_line(strsql);
    execute immediate strsql;
    end;
    /
      

  4.   

    Oracle8.15之前的版本就必须要用dbms_sql包以光标的方式来处理了。