Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6976505
  • 博文数量: 701
  • 博客积分: 10821
  • 博客等级: 上将
  • 技术积分: 12021
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-02 10:41
个人简介

中科院架构师,专注企业数字化各个方面,MES/ERP/CRM/OA、物联网、传感器、大数据、ML、AI、云计算openstack、Linux、SpringCloud。

文章分类

全部博文(701)

分类: Oracle

2013-06-28 16:42:55

 

StoredProcedure :储过
procedure
:和StoredProcedure,也叫存储过程。
function
:函数
package
:包
package body
:包体

上述名3
储过程:StoredProcedureProcedure
函数:Function
包:package:包package body:包体

函数

返回值:有且只有一个,

出参:可以有(out

参数可以没有。
Create or replace function F_hiyatest(
    p_id in table1.id%TYPE
    ,
p_aa in varchar2

,p_ab out varchar2
) return varchar2
is
   v_name table1.name%type;
   v_ret varchar2;
begin
   ...
   v_ret := '0';
    return v_ret;
 end;


储过

返回值:没有,

出参:可以有(out

参数可以没有。

Create or replace produce P_hiyatest(
    p_id in table1.id%TYPE
    ,
p_aa in varchar2

,p_ab out varchar2
)
 is
   v_name table1.name%type;
   v_ret varchar2;

v_no number;

corsor c1(f_cc varchar2) is

select aa from table1 where cc=f_cc ;
begin
   ...
   v_ret := '0';
    return v_ret;
 end;

包:

可以放多个函数。

Create or replace Package body hiyatest

AS

produce P_hiyatest(
    p_id in table1.id%TYPE
    ,
p_aa in varchar2,

,p_ab out varchar2,
)
 is
   v_name table1.name%type;
   v_ret varchar2;

v_no number;

corsor c1(f_cc varchar2) is

select aa from table1 where cc=f_cc ;
begin
   ...
   v_ret := '0';
    return v_ret;
 end
P_hiyatest;

function F_hiyatest(
    p_id in table1.id%TYPE
    ,
p_aa in varchar2
) return varchar2
is
   v_name table1.name%type;
   v_ret varchar2;
begin
   ...
   v_ret := '0';
    return v_ret;
 end
F_hiyatest;

end hiyatest;

简单的说,如果想要一个方法中作完所有的处理。考虑用存储过程或函数。

区别是函数有返回值,存储过程没有。但都可以用出参当做返回值。

如果用多个方法中作完所有的处理,只能用包了。

http://hiyachen.cublog.cn

类似于C++的头文件和正文,包必须有包头文件和包体文件。不用includeOracle自动匹配。包名相同。

以上我的一点体会。欢迎评论。

阅读(4121) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~