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;
實(shí)際參數(shù)通過(guò)位置與形式參數(shù)相關(guān)聯(lián):
v_Variable1與p_ParameterA相關(guān)聯(lián),
v_Variable2與p_ParameterB相關(guān)聯(lián),
v_Variable3與p_ParameterC相關(guān)聯(lián),
v_Variable4與p_ParameterD相關(guān)聯(lián),
這種變量叫做定位符(positional notation)。
也可以用命名符(named notation)來(lái)調(diào)用過(guò)程:
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;
在命名符中,對(duì)于每一個(gè)參數(shù),都包含了形式參數(shù)和實(shí)際參數(shù)。
這就允許在需要時(shí)重新整理參數(shù)的順序。
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;
定位符和命名符也可以在同一個(gè)調(diào)用中混合使用。
第一個(gè)參數(shù)必須通過(guò)定位符指定,而其余的參數(shù)可以根據(jù)名字指定。
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 行出現(xiàn)錯(cuò)誤:
ORA-06550: 第 8 行, 第 10 列:
PLS-00312: 一個(gè)定位相關(guān)參數(shù)沒(méi)有說(shuō)明其相關(guān)性
ORA-06550: 第 7 行, 第 3 列:
PL/SQL: Statement ignored
定位符? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???命名符
-------------------------------------------------------------------------------------------------------------------------
更多依靠實(shí)際參數(shù)的適當(dāng)名字來(lái)說(shuō)明每個(gè)符號(hào)的作用? ?? ?明確說(shuō)明實(shí)際參數(shù)與形式參數(shù)的聯(lián)系
用于形式參數(shù)和實(shí)際參數(shù)的名字是獨(dú)立的;可以改變? ?? ?可能更難維護(hù),因?yàn)槿粜问絽?shù)的名字改變,使用
一個(gè)而不用修改另一個(gè)? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???命名對(duì)過(guò)程的調(diào)用都要改變
因?yàn)槿粜问絽?shù)的順序改變,使用定位符對(duì)過(guò)程的調(diào)? ?? ?用于形式參數(shù)和實(shí)際參數(shù)的順序是獨(dú)立的;可以改變
用都要改變,所以可能更難維護(hù)? ?? ?? ?? ?? ?? ?? ?? ?一個(gè)而不用修改另一個(gè)
比命名符更簡(jiǎn)潔? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???需要更多的代碼,因?yàn)樾问絽?shù)和實(shí)際參數(shù)都被包括
在調(diào)用過(guò)程中
帶有缺省值的參數(shù)必須在參數(shù)列表的最后? ?? ?? ?? ?? ? 允許形式參數(shù)使用缺省值,而不管哪個(gè)參數(shù)有缺省值
-------------------------------------------------------------------------------------------------------------------------
總結(jié)
以上是生活随笔為你收集整理的oracle无效的关联运算符,菜鸟请教:关联操作符=>用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 信用卡自动还款怎么样 有风险吗
- 下一篇: 查看服务器文件夹,远程查看服务器文件夹内