oracle存储过程调用另一个存储过程
时间: 2023-07-06 19:39:05 浏览: 40
要在Oracle存储过程中调用另一个存储过程,可以使用以下语法:
```
BEGIN
stored_procedure_name1(param1, param2, ..., paramN);
stored_procedure_name2(param1, param2, ..., paramN);
END;
```
其中,`stored_procedure_name1`和`stored_procedure_name2`分别表示要调用的两个存储过程的名称,`param1`到`paramN`表示传递给存储过程的参数。需要注意的是,如果两个存储过程不在同一个schema中,则需要在调用时指定schema名称,例如:
```
BEGIN
schema_name.stored_procedure_name1(param1, param2, ..., paramN);
other_schema_name.stored_procedure_name2(param1, param2, ..., paramN);
END;
```
其中,`schema_name`和`other_schema_name`分别表示两个存储过程所在的schema名称。
相关问题
oracle存储过程内嵌套调用另一个存储过程
在 Oracle 存储过程中,可以嵌套调用另一个存储过程,即在一个存储过程中调用另一个存储过程。这可以通过和普通调用一样的语法来实现,只需要在嵌套调用的存储过程中使用 BEGIN 和 END 块来定义代码。
例如,假设存在两个存储过程 `my_proc1` 和 `my_proc2`,其中 `my_proc1` 要在内部嵌套调用 `my_proc2`,可以使用以下代码:
```
CREATE OR REPLACE PROCEDURE my_proc1 AS
BEGIN
-- 执行一些代码
...
-- 调用 my_proc2
BEGIN
my_proc2('value1', 123);
END;
-- 执行一些代码
...
END;
```
在上面的代码中,`my_proc1` 存储过程中嵌套调用了 `my_proc2` 存储过程,并传递了两个参数 `'value1'` 和 `123`。
需要注意的是,在存储过程中嵌套调用其他存储过程时,需要确保被调用的存储过程已经存在于数据库中,并且有正确的参数定义。同时,在调用存储过程时,需要确保权限和参数的正确性。
oracle 存储过程调用存储过程
在Oracle中,可以通过以下几种方式调用存储过程:
1. 在SQL窗口直接执行存储过程调用代码,例如:
DECLARE
FLAG NUMBER;
FAIL_INFO VARCHAR2(512);
BEGIN
PKG_ZBZ_PORTAL.PRO_INSERT_INFO_ARGS('20220710', FLAG, FAIL_INFO);
dbms_output.put_line('FLAG=' || FLAG);
dbms_output.put_line('FAIL_INFO=' || FAIL_INFO);
END;
2. 在Procedures菜单列表中选中存储过程,然后调用存储过程进行验证和测试。
3. 在命令窗口执行存储过程调用代码,例如:
var FLAG NUMBER;
var FAIL_INFO VARCHAR2(512);
exec PKG_ZBZ_PORTAL.PRO_INSERT_INFO_ARGS('20220710',:FLAG,:FAIL_INFO);
请注意,以上是三种常见的调用存储过程的方式,具体使用哪种方式取决于你的需求和环境。