300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > oracle无效的关联运算符 菜鸟请教:关联操作符=>用法

oracle无效的关联运算符 菜鸟请教:关联操作符=>用法

时间:2018-07-07 15:58:56

相关推荐

oracle无效的关联运算符 菜鸟请教:关联操作符=>用法

定位符和命名符

create or replace procedure CallMe(p_ParameterA varchar2,

p_ParameterB number,

p_ParameterC boolean,

p_ParameterD date) as

begin

null;

end CallMe;

declare

v_Variable1 varchar2(10);

v_Variable2 number(7, 6);

v_Variable3 boolean;

v_Variable4 date;

begin

CallMe(v_Variable1, v_Variable2, v_Variable3, v_Variable4);

end;

实际参数通过位置与形式参数相关联:

v_Variable1与p_ParameterA相关联,

v_Variable2与p_ParameterB相关联,

v_Variable3与p_ParameterC相关联,

v_Variable4与p_ParameterD相关联,

这种变量叫做定位符(positional notation)。

也可以用命名符(named notation)来调用过程:

declare

v_Variable1 varchar2(10);

v_Variable2 number(7, 6);

v_Variable3 boolean;

v_Variable4 date;

begin

CallMe(p_ParameterA => v_Variable1,

p_ParameterB => v_Variable2,

p_ParameterC => v_Variable3,

p_ParameterD => v_Variable4);

end;

在命名符中,对于每一个参数,都包含了形式参数和实际参数。

这就允许在需要时重新整理参数的顺序。

declare

v_Variable1 varchar2(10);

v_Variable2 number(7, 6);

v_Variable3 boolean;

v_Variable4 date;

begin

CallMe(p_ParameterB => v_Variable2,

p_ParameterC => v_Variable3,

p_ParameterD => v_Variable4,

p_ParameterA => v_Variable1);

end;

定位符和命名符也可以在同一个调用中混合使用。

第一个参数必须通过定位符指定,而其余的参数可以根据名字指定。

declare

v_Variable1 varchar2(10);

v_Variable2 number(7, 6);

v_Variable3 boolean;

v_Variable4 date;

begin

CallMe(v_Variable1,

p_ParameterC => v_Variable3,

p_ParameterD => v_Variable4,

p_ParameterB => v_Variable2);

end;

--ok

declare

v_Variable1 varchar2(10);

v_Variable2 number(7, 6);

v_Variable3 boolean;

v_Variable4 date;

begin

CallMe(p_ParameterA => v_Variable1,

v_Variable2,

p_ParameterD => v_Variable4,

p_ParameterC => v_Variable3);

end;

--output

第 8 行出现错误:

ORA-06550: 第 8 行, 第 10 列:

PLS-00312: 一个定位相关参数没有说明其相关性

ORA-06550: 第 7 行, 第 3 列:

PL/SQL: Statement ignored

定位符 命名符

-------------------------------------------------------------------------------------------------------------------------

更多依靠实际参数的适当名字来说明每个符号的作用 明确说明实际参数与形式参数的联系

用于形式参数和实际参数的名字是独立的;可以改变 可能更难维护,因为若形式参数的名字改变,使用

一个而不用修改另一个命名对过程的调用都要改变

因为若形式参数的顺序改变,使用定位符对过程的调 用于形式参数和实际参数的顺序是独立的;可以改变

用都要改变,所以可能更难维护 一个而不用修改另一个

比命名符更简洁 需要更多的代码,因为形式参数和实际参数都被包括

在调用过程中

带有缺省值的参数必须在参数列表的最后允许形式参数使用缺省值,而不管哪个参数有缺省值

-------------------------------------------------------------------------------------------------------------------------

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。