oracle執行存儲過程帶參數
1. oracle的存儲過程的調用和寫法
在Oracle PL/SQL中,存儲過程的調用與編寫方法如下:
首先,在"測試"窗口中輸入以下代碼進行測試:
dbms.output.put_line(param)類似於JSP中的out.println(),用於在過程中查看錯誤信息,可以在過程中添加。
示例代碼如下:
declare param varchar2(10); begin param :='week';--這是你的輸入參數 proc_rpt_result(param); dbms_output.put_line(param);--這是過程處理列印結果 end;
這段代碼展示了如何定義一個變數,設定輸入參數,調用存儲過程,並列印結果。
接下來,我們來看看游標的使用。游標是一種用於存儲和處理查詢結果的特殊變數。例如:
select xx from xxx 有多個返回值,可以將這些返回值存儲到游標cursor中,然後通過open打開游標,逐個處理這些值。
你可以把游標看作是一個數組,select操作將查詢結果存入游標,open操作則取出這些值進行處理。
下面是一個使用游標的示例代碼:
declare cursor c1 is select * from emp; begin open c1; loop fetch c1 into :col1, :col2; exit when c1%notfound; dbms_output.put_line(col1 || ', ' || col2); end loop; close c1; end;
這段代碼定義了一個游標,從emp表中獲取數據,並逐行列印這些數據。
以上就是關於Oracle存儲過程的調用和編寫方法,以及如何使用游標處理查詢結果的簡單介紹。
2. oracle中,一個存儲過程怎麼調用另一個存儲過程這兩個存儲過程都帶有各自的參數。直接調用似乎不行。
直接調用就可以了。舉個例子把 B 存儲過程調用A 存儲過程。
PROCEDURE A (p_1 in number,p_2 out number)
is
v_1 number;
begin
V_1:=p_1;
p_2:=v_1;
end A;
(1)如果A 與B同在一個package裡面的話。那麼 B裡面直接可以調用A
PS:如果A,B在同一個Package 中無法調用的話,那麼很可能是A,B在Spec里沒有聲明。一個package包含Spec 和Body,兩層。不能調用很可能沒有聲明。聲明後應該ok!
PROCEDURE B(p_1 in number)
is
v_result number;
begin
v_result =A(p_1);
end B;
其中v_result就是調用A的結果,A的返回值。
(2)如果A與B不在同一個package的話
那麼B在調用A 的時候,需要加上pkg的名字
比如:A 存儲過程在pkg :xxom_test_pkg 中
PROCEDURE B(p_1 in number)
is
v_result number;
begin
v_result = xxom_test_pkg .A(p_1);
end B;
----------------------------------------------------------
以上簡單介紹了存儲過程的調用。
希望對你有幫助
3. oracle中怎麼執行帶有輸出參數的存儲過程,在程序中我知道怎麼調用,
1、新建一個存儲過程(Procere)。