初学者 函数和存储过程

数据库中函数的存储过程区别;

存储过程和函数都是为了 可重复的 执行数据库中的sql语句集合。 存储过程相对比较复杂,可以输出多个参数,而函数相对比较简单,针对性比较强,输出的是值或者表对象。

写法上:

    1.存储过程:参数列表可以有 in 、out、in out参数。

        2.函数:参数列表 in 参数 , 并且有return<返回值类型,无参数类型>。

返回值上;

1.存储过程:可以返回多个值。

2.函数:返回一个值

调用方式上:

1.存储过程:exec|execute 过程名。pl/sql直接调用。

2.函数:pl/sql直接调用。可以select 函数名 from dual;

语法上:

1.存储过程:

create or replace procedure 过程名(in、out、in out参数)       

is | as

变量名 初始化

begin 

执行体

exception

捕获异常 从错处理

end


例子:

create or replace procedure up_wap(v_param1 in out varchar2,v_param2 in out varchar2)

is

v_temp varchar2(20);

begin

dbms_output.put_line('交换前参数1:'||v_param1||' 参数2:'||v_param2);

v_temp:=v_param1;

v_param1:=v_param2;

v_param2:=v_temp;

dbms_output.put_line('交换后参数1:'||v_param1||' 参数2:'||v_param2);

exception

when others then dbms_output.put_line('There is a error when the procedure up_wap executing!');

end up_wap;

-- 调用存储过程

declare

v_param1 varchar2(20):='param1';

v_param2 varchar2(20):='param2';

begin

up_wap(v_param1 => v_param1,v_param2 => v_param2);

end;

2.函数:

create function  函数名(in 参数)

return <返回值类型、无长度说明>

is | as

变量初始化 声明

begin

执行体

return < 返回值>

exception

捕获异常 从错处理

end 函数名

例子:

create function uf_select_name_by_id_test(v_id in number)

return varchar2

is

v_name t_test.t_name%type;

begin

select t_name into v_name from t_test where t_id=v_id;

return v_name;

exception

when others then dbms_output.put_line('error');

end uf_select_name_by_id_test;

/

select uf_select_name_by_id_test(1) 姓名 from dual;-- select调用

declare --pl/sql语句块调用

v_name varchar2(20);

begin

v_name:=uf_select_name_by_id_test(1);

dbms_output.put_line('name = '||v_name);

end;

/

        


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值