gpt4 book ai didi

oracle - 从oracle中的存储过程分配输出参数

转载 作者:行者123 更新时间:2023-12-02 06:57:34 27 4
gpt4 key购买 nike

请帮我解决以下场景

我需要在另一个存储过程中调用一个存储过程。内部 SP 将返回一个数字值,我需要将其存储在局部变量中。

粗略代码

AssignSpResult NUMBER;

AssignSpResult = SPtobe Called(Param1,Param2, OutParam);

此语法很可能是错误的,因此请帮助纠正它

最佳答案

下面是一个示例:

HR\XE> create or replace procedure Proc1(p_out out number)
2 is
3 begin
4 p_out := 123;
5* end;
HR\XE> /

Procedure created.

HR\XE> create or replace procedure Proc2
2 is
3 l_val number;
4 begin
5 Proc1(l_val);
6 dbms_output.put_line('Here is a value returned by Proc1: ' || to_char(l_val));
7 end;
8 /

Procedure created.

HR\XE> set serveroutput on;
HR\XE> exec Proc2;

Here is a value returned by Proc1: 123

PL/SQL procedure successfully completed

根据您的需要,使用函数返回数据过程处理的结果可能会更方便。这是一个例子:

HR\XE> create or replace function F1 return number
2 is
3 l_ret_value number;
4 begin
5 l_ret_value := 123;
6 return l_ret_value;
7 end;
HR\XE> /

Function created.

HR\XE> create or replace procedure Proc3
2 is
3 l_val number;
4 begin
5 l_val := F1;
6 dbms_output.put_line('Value returned by the F1 function: ' ||
To_Char(l_val));
7 -- Or
8 dbms_output.put_line('Value returned by the F1 function: ' || To_Char(F1));
9 end;
HR\XE> /

Procedure created.

HR\XE> set serveroutput on;
HR\XE> exec proc3;

Value returned by the F1 function: 123
Value returned by the F1 function: 123

PL/SQL procedure successfully completed.

HR\XE>

关于oracle - 从oracle中的存储过程分配输出参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12780864/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com