一个存储过程调用多个存储过程
㈠ oracle中怎么在存储过程中调用同一个包的其他存储过程
在存储过程或函数里调用oracle包的话,首先要有执行这个包的权限;如果包属于其他的用户(不是系统包),调用时:用户名.包名.存储过程(参数)名或者
变量:=用户名.包名.函数(参数);因为函数有返回值,变量类型要跟函数返回值的类型一致。
在command
下调用的话:exec
用户名.包名.存储过程名(参数);select
用户名.包名.函数名(参数)
from
al;就可以了。包属于当期用户可以不写用户名。
㈡ 如何在存储过程中并行调度另外几个存储过程
不知道你的具体情况, 只能猜了. 如果存储过程B有参数, 在存储过程A里调用B, 用参数过滤一下B的结果集, 然后放到一个临时表(或者类似结构的东东)里, 最后在A里直接SELECT这个临时表的数据即可. 如果B没有参数, 就在SELECT里过滤一下.
㈢ PL/SQL存储过程并行调用多个存储过程 在 procere1里procere2,procere3并行执行,并且只一个有参数
并行执行可以用提交job的方式去做,以下语句供参考
declare
jobno binary_integer;
begin
dbms_job.submit(jobno,'procere2(''参数'');',sysdate,'');
dbms_job.submit(jobno,'procere3(''参数'');',sysdate,'');
commit;
end;
㈣ 如何在存储过程中调用其他的存储过程
一个带参数的存储过程。
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 /
Procere created.
SQL> CREATE OR REPLACE PROCEDURE CallHelloWorld1 (
2 p_user VARCHAR2
3 ) AS
4 BEGIN
5 -- 调用存储过程的 存储过程
6 HelloWorld1(p_user);
7 END CallHelloWorld1;
8 /
Procere created.
执行
SQL> set serveroutput on
SQL> exec CallHelloWorld1( 'Tom' );
Hello Tom!
PL/SQL procere successfully completed.