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

billlyh 2012-10-30 08:53:02
一。直接在在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);

这是我所知道的区别,哪位兄弟说说还有什么其他区别???
...全文
169 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
billlyh 2012-12-14
  • 打赏
  • 举报
回复
引用 3 楼 Rexmax 的回复:
一、是你直接定义了一个过程,可以直接调用的。 二、是你把这个过程定义在package里面。 如果内容一样,次过程是没有任何区别的。但是package里面的此过程你可以重载,根据不同的参数来重载此过程。相对来说建议你把过程定义在package中。今后扩展更方便。
说得比较清楚了,谢谢
billlyh 2012-11-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
一、是你直接定义了一个过程,可以直接调用的。
二、是你把这个过程定义在package里面。
如果内容一样,次过程是没有任何区别的。但是package里面的此过程你可以重载,根据不同的参数来重载此过程。相对来说建议你把过程定义在package中。今后扩展更方便。
[/Quote]
说得比较清楚了,谢谢
睿智天成 2012-10-31
  • 打赏
  • 举报
回复
一、是你直接定义了一个过程,可以直接调用的。
二、是你把这个过程定义在package里面。
如果内容一样,次过程是没有任何区别的。但是package里面的此过程你可以重载,根据不同的参数来重载此过程。相对来说建议你把过程定义在package中。今后扩展更方便。
billlyh 2012-10-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
package用来作为名字空间,就像java/c++中的一个class,这样便于维护。两种过程本质上是一样的。
[/Quote]
谢谢
fw0124 2012-10-30
  • 打赏
  • 举报
回复
package用来作为名字空间,就像java/c++中的一个class,这样便于维护。两种过程本质上是一样的。

3,494

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧