oracle 存储过程中调用存储过程

Posted

tags:

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

如何在存储过程中调用其他的存储过程(这些都是带参数的)
谁给我写个例子。

参考技术A 一个带参数的存储过程。
SQL> CREATE OR REPLACE PROCEDURE HelloWorld1 (
2 p_user_name VARCHAR2
3 ) AS
4 BEGIN
5 dbms_output.put_line('Hello ' || p_user_name || '!');
6 END HelloWorld1;
7 /

Procedure created.

SQL> CREATE OR REPLACE PROCEDURE CallHelloWorld1 (
2 p_user VARCHAR2
3 ) AS
4 BEGIN
5 -- 调用存储过程的 存储过程
6 HelloWorld1(p_user);
7 END CallHelloWorld1;
8 /

Procedure created.

执行
SQL> set serveroutput on
SQL> exec CallHelloWorld1( 'Tom' );
Hello Tom!

PL/SQL procedure successfully completed.本回答被提问者和网友采纳
参考技术B SQL>create or replace procedure pro_square(
num in out number, //计算它的平方或平方根,这是一个”in out“参数
flag in boolean) is //计算平方或平方根的标识,这是一个“in"参数
i int:=2; //表示计算平方,这是一个内部变量
begin
if flag then //若为真
num:=power(num,i); //计算平方
else
num:=sqrt(num); //计算平方根
end if;
end;
/
调用存储过程:
declare
var_number number;
var_temp number;
boo_flag boolean;
begin
var_temp:=3;
var_number:=var_temp;
boo_flag:=false;
pro_square(var_number,boo_flag);
if boo_flag then
dbms_output.put_line(var_temp ||'的平方是:'||'var_number');
else
dbms_output.put_line(var_temp ||'平方根是:'||'var_number');
end if;
end;

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

oracle存储过程中循环调用存储过程

在oracle中 存储过程如何调用存储过程?

Oracle如何创建存储过程和如何调用存储过程

oracle中,一个存储过程怎么调用另一个存储过程?

oracle数据库调用存储过程

在 navicat 连接的oracle中,调用存储过程 报错?