我有一个代码:OPEN c_data (p_id => 1);
=>
运算符在 PL / SQL
是一个调用运算符或赋值运算符
答案 0 :(得分:2)
=>
用于过程或函数调用,以按名称执行参数分配。我们假设我们的程序定义为:
PROCEDURE XYZ(pParm1 IN NUMBER, pParm2 IN NUMBER, pOutput OUT NUMBER);
我们要调用它。一种方法是按声明顺序传递参数,如:
XYZ(10, 20, nOut);
我觉得更清楚的另一种方法是使用=>
运算符直接显示为每个参数分配的值:
XYZ(pOutput => nOut, pParm1 => 20, pParm2 => 40);
请注意,如果您使用=>
运算符为每个参数赋值,则无需按照它们在过程中声明的顺序传递参数。
如果您编译并运行以下示例:
declare
nOut NUMBER;
PROCEDURE XYZ(pParm1 IN NUMBER, pParm2 IN NUMBER, pOutput OUT NUMBER) IS
BEGIN
pOutput := pParm1 * pParm2;
END XYZ;
begin
-- Test statements here
XYZ(10, 20, nOut);
DBMS_OUTPUT.PUT_LINE('After call 1, nOut=' || nOut);
XYZ(pOutput => nOut, pParm1 => 20, pParm2 => 40);
DBMS_OUTPUT.PUT_LINE('After call 2, nOut=' || nOut);
end;
您会发现它会产生以下输出:
After call 1, nOut=200
After call 2, nOut=800
我发现按名称传递值在以下几种情况下特别有用:
分享并享受。