1简化前台编程
2方便修改
3容易控制数据完整性

就想到这么多了!

解决方案 »

  1.   

    给你贴个动态SQL的例子(抄的)hiahiaCREATE OR REPLACE PROCEDURE update_history (
       tab1_name IN VARCHAR2,
       tab2_name IN VARCHAR2,
       date_in   IN DATE
       )
    AS
       cur            INTEGER := DBMS_SQL.OPEN_CURSOR;
       rows_inserted  INTEGER;
    BEGIN
       DBMS_SQL.PARSE (
          cur, 
          'INSERT INTO ' || tab1_name || 
          '  (SELECT * FROM ' || tab2_name || 
          ' WHERE created_on < :datelimit)', 
          DBMS_SQL.NATIVE);
          
       DBMS_SQL.BIND_VARIABLE (cur, 'datelimit', date_in);
       
       rows_inserted := DBMS_SQL.EXECUTE (cur);   DBMS_SQL.CLOSE_CURSOR (cur);
    END;
      

  2.   

    比较复杂的耗费时间较长查询、统计也应作成存储过程。
      

  3.   

    一般来说,运行前台程序的机器配置都很差的,无法进行大量的统计计算、或则对大量的数据进行分析,例如对于一个工资管理系统,一般需要对部门职工的工资进行计算,统计,如果公司大的话,前台需要对职工的很多记录进行处理才能计算出工资,也就是说要一条条的读出记录,并分析。但是如果用到了存储工程,所有的工作都在服务器上完成,前台要做的只是执行几条语句而已
    另外,运用了存储过程,该动也比较方便,只需要对服务器进行修改即可
      

  4.   

    使用存储过程的一大好处是减少网络数据流量,因为对于某些操作,通常需要从服务器端下载大量数据然后在客户端运算,使用存储过程后大量运算直接在服务器端,只需传送结果给客户端,减少了网络流量
      

  5.   

    没有什么影响,只减少程序重复性