oracle存储过程里调用存储过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle存储过程里调用存储过程相关的知识,希望对你有一定的参考价值。

oracle 如何在存储过程a里调用存储过程b(c,d); ?

如果已经存在一个存储过程A(参数);

那么在存储过程B中可以直接通过:

values := A(参数);即可实现调用。

备注:values必须在初始化过程中进行定义如: values  VARCHAR(30);并且此类型必须与A存储过程返回参数类型一致。

参考技术A 存储过程里直接新起一行写b(c,d);就可以,不在存储过程中单独执行时要call b(c,d);本回答被提问者采纳 参考技术B 举个例子给你看,相信你一下就能明白了.
oracle数据库可以直接编译后运行的.用的是EMP表,你可以自己测试下.
---创建一个存储过程
CREATE OR REPLACE PROCEDURE GET_NAME(C IN NUMBER, D OUT VARCHAR2) AS
BEGIN
SELECT ENAME INTO D FROM EMP WHERE EMPNO = C;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20001, '你输入的ID不存在!');
END GET_NAME;
---在一个无名块中调用存储过程.(此无名块 加一个CREATE OR REPLACE...就相当于一个存储过程,没什么区别的)
DECLARE
v_name varchar2(20);
BEGIN
get_name(2,v_name);
DBMS_OUTPUT.put_line(v_name);
END;
--结果显示为
查找出的员工姓名是:KING
参考技术C exec c
exec d

怎么用ORACLE PLSQL匿名块调用存储过程

现在有一个存储过程
producre core_acct_compare(p_branch in varchar2,
p_format in varchar2,
p_collate_date in varchar2,
p_status in varchar2)
is
v_prior_date varchar(8 char);
v_start_date varchar(8 char);
v_invalid exception;
BEGIN
...具体过程...
END core_acct_compare;
怎么用匿名块调用一下这个存储过程?

参考技术A begin
     core_acct_compare(参数1,参数2,参数3,参数4);
end;

begin ... end;  就是所谓的匿名块

本回答被提问者和网友采纳

以上是关于oracle存储过程里调用存储过程的主要内容,如果未能解决你的问题,请参考以下文章

oracle的存储过程里怎样调用动态变量

Instr函数在oracle存储过程里怎么用

oracle form怎么调用oracle存储过程

SQL存储过程如何调用存储过程?

怎么用ORACLE PLSQL匿名块调用存储过程

如何把oracle存储过程保存到数据库里?