首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

pl/sql developer7.1的两种存储过程有何差别

2013-01-08 
pl/sql developer7.1的两种存储过程有何区别?一。直接在在Procedures中定义CREATE OR REPLACE PROCEDURE Ra

pl/sql developer7.1的两种存储过程有何区别?
一。直接在在Procedures中定义
CREATE OR REPLACE PROCEDURE Rasdetail_B(V_GROUP_ID IN NUMBER,d1 IN DATE,d2 IN DATE) AS
在form、report中直接调用
  Rasdetail_B(:p_group_id,:d1,:d2);
二。在Packages中定义
例:
先在Packages中/zd_pub_get中定义
              PROCEDURE invgstot_get(
              p_group_id IN NUMBER
              ); 
再在Package bodies/zd_pub_get中定义
        PROCEDURE invgstot_get(
              p_group_id IN NUMBER
          ) is
          begin
            ............................
          end;        
调用时要加上前缀zd_pub_get:
zd_pub_get.invgstot_get(:p_group_id);

这是我所知道的区别,哪位兄弟说说还有什么其他区别???                    
[解决办法]
package用来作为名字空间,就像java/c++中的一个class,这样便于维护。两种过程本质上是一样的。
[解决办法]
一、是你直接定义了一个过程,可以直接调用的。
二、是你把这个过程定义在package里面。
如果内容一样,次过程是没有任何区别的。但是package里面的此过程你可以重载,根据不同的参数来重载此过程。相对来说建议你把过程定义在package中。今后扩展更方便。

热点排行