1)位置表示法
--argvalue1,argvalue2,..argvaluen
proTranslateRole(v_roleId,v_result)
2)名称表示法
--这种方式与参数的顺序没关系,v_result 、 v_roleId与函数中的参数名称需一致
declare
roleId varchar2(20); --角色编号
vresult varchar2(60); --角色的结果
begin
roleId := 'project_bj';
vresult := proTranslateRole (v_result => vresult, v_roleId => roleId);
dbms_output.put_line(vresult);
end;
3)组合(名称表示+位置表示法)
如果前一个参数用名称表示法,则后面的所有参数都要用名称表示法。
--调用方式1
declare
v_roleId varchar2(20); --角色编号
v_result varchar2(60); --角色的结果
begin
v_roleId := 'project_bj';
v_result := proTranslateRole (v_roleId,v_result);
dbms_output.put_line(v_result);
end;
--调用方式2
exec[ute] 存储过程名称(参数1,..参数n);
--可以在PL/SQL块中建立本地函数和过程,但不能使用 create or replace关键字
1)函数与过程的差异
1、如果要返回多个值或不返回值,可以使用过程;如果只返回1个值,可以使用函数。
2、过程用于执行一系列的动作,而函数用于计算和返回1个值。
3、可以在SQL语句内部通过调用函数来完成复杂的计算,而过程则做不到。