首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >过程调用另一个过程

过程调用另一个过程
EN

Stack Overflow用户
提问于 2017-02-01 23:09:09
回答 2查看 64关注 0票数 1
代码语言:javascript
复制
CREATE OR REPLACE PROCEDURE numeros (entra1 NUMBER, entra2 NUMBER)
IS
v_num1 NUMBER;
v_num2 NUMBER;
BEGIN
v_num1:=entra1;
v_num2:=entra2;
END;

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

CREATE OR REPLACE PROCEDURE somando
IS
v_soma NUMBER;
v_num1 NUMBER;
v_num2 NUMBER;
BEGIN
numeros(40,60);
v_soma:=(v_num1+v_num2);
DBMS_OUTPUT.PUT_LINE('O valor da soma de ' ||v_num1||' e '||v_num2||' é:'||v_soma);
END somando;

为什么我不能捕获来自第一个过程"numeros“的值,当我执行"somando”过程时,结果是空的“”。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-02 00:03:44

假设这是PL/SQL,我相信有一些可能的解决方法。最简单的方法是在过程中设置输出参数变量,以获得如下数字:

代码语言:javascript
复制
CREATE OR REPLACE PROCEDURE numeros(
    entra1 IN NUMBER,
    entra2 IN NUMBER,
    out_entra1 OUT NUMBER,
    out_entra2 OUT NUMBER)
IS
    v_num1 NUMBER;
    v_num2 NUMBER;
BEGIN
    v_num1 := entra1;
    v_num2 := entra2;
    out_entra1 := v_num1;
    out_entra2 := v_num2;
END numeros;

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

CREATE OR REPLACE PROCEDURE somando IS
    v_soma NUMBER;
    v_num1 NUMBER;
    v_num2 NUMBER;
BEGIN
    dbms_output.enable();
    numeros(40,60,v_num1,v_num2);
    v_soma := (v_num1+v_num2);
    DBMS_OUTPUT.PUT_LINE('O valor da soma de ' ||v_num1||' e '||v_num2||' é:'||v_soma);

END somando;

我认为更推荐的方法是将这两个过程放在一个包中,并在头文件中声明全局变量,但我不确定您的设置是什么样子。

票数 2
EN

Stack Overflow用户

发布于 2017-02-02 14:58:49

可以将该过程更改为返回值的函数,或者将该过程的一个参数指定为IN OUT

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41983088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档