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

如何在存储过程中调用其他的存储过程(这些都是带参数的)
谁给我写个例子。
最新回答
叆叇若紫

2024-10-17 09:35:56

一个带参数的
存储过程

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.
不交电费瞎发啥光

2024-10-17 08:49:07

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;