一個存儲過程調用多個存儲過程
㈠ 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.