oracle 函数中能调用存储过程吗

2020-05-22 社会 102阅读

oracle 函数中能调用存储过程,举例如下:

1、无参数存储过程的调用

--创建无参存储过程
CREATE OR REPLACE FUNCTION stu_proc RETURN VARCHAR2 IS
    --声明语句段
    v_name varchar2(20);
BEGIN
    --执行语句段
    SELECT o.sname INTO v_name FROM student o where o.id=1;
    RETURN v_name;
END;
--调用无参存储过程
DECLARE 
BEGIN 
    DBMS_OUTPUT.put_line('在PL/SQL中打印的结果:'||stu_proc);
END;

2、入参存储过程的调用

--创建入参存储过程
CREATE OR REPLACE FUNCTION stu_proc(v_id IN NUMBER) RETURN VARCHAR2 IS
    --声明语句段
    v_name varchar2(20);
BEGIN
    --执行语句段
    SELECT o.sname INTO v_name FROM student o where o.id=v_id;
    RETURN v_name;
END;
--调用入参存储过程
DECLARE 
BEGIN 
    DBMS_OUTPUT.put_line('在PL/SQL中打印的结果:'||stu_proc(1));
END;
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com