oracle存儲過程調用
1. 在oracle中 存儲過程如何調用存儲過程
如果是在三層中的話,把DAL、BLL寫出來,然後在Web層中調用BLL中的方法,就這樣。。
2. 請問oracle怎麼執行存儲過程
我試驗過了,就是exec 存儲過程名或者execute 存儲過程名(參數),請你在仔細確認一下,你的存儲過程名寫沒寫對呀,或者你沒有進入sqlplus中?
----
以上,希望對你能有幫助。
3. oracle的存儲過程的調用和寫法
存儲過程的執行方法如下
/*****************************************************************
oracle pl/sql中新建一個"測試"窗口,鍵入以下值測試oracle存儲過程。
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;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
這是我前段時間自己查資料總結的,都是初學者 希望對你有用
cursor是游標類型,前面某個查詢的值有多個返回 如
select xx from xxx 有多個返回值xx存入游標cursor,下面的open打開游標,對每一個游標的值按順序進行操作,你可以把游標看成是一個數組,select存入,open取出,你這個包我看不懂。
4. oracle如何在函數中調用存儲過程
函數中調用存儲過程報錯,多半是由於函數的執行用戶,沒有授權insert 許可權。
5. oracle資料庫存儲過程之後的調用
在Oracle中用pl/SQL代碼塊就可以調用存儲過程,如下:
begin
-- Call the procere
test(is_year_id => :is_year_id,
is_district_id => :is_district_id,
is_district_sub_id => :is_district_sub_id,
is_district_level => :is_district_level,
os_meg => :os_meg,
os_code => :os_code);
end;
參數如果都是輸入參數給常量就可以 如果有輸出型參數,你就得聲明變數,然後傳進去,如:
declare
聲明變數
begin
-- 調用過程 把輸出弄參數用變數傳進去 過程調用後解析這個變數值就行了
end;
看了上次給你改的過程,如果要調用那個過程的話可以這么寫:
declare
flag number(1);
begin
-- 調用過程 把輸出弄參數用變數傳進去 過程調用後解析這個變數值就行了
_Login(flag ) ;
--根據你的需要對flag的值不同去做不同的事情
if flag=1 then
--寫你要處理的內容
end if;
end;
6. oracle存儲過程調用其他過程
直接在 程序中,返回 r_xml 語句之前 直接加一條賦值語句就OK了,
r_xml := r_xml1 || r_xml2;
7. oracle存儲過程里調用存儲過程
存儲過程里直接新起一行寫b(c,d);就可以,不在存儲過程中單獨執行時要call b(c,d);
8. oracle 存儲過程中調用存儲過程
一個帶參數的存儲過程。
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.
9. oracle 怎麼調用存儲過程
ORACLE存儲過程 以oracle自帶例子資料庫的表舉例
1、
create or replace procere p
is
cursor c is
select * from emp2 for update;
begin
for v_emp in c loop
if(v_emp.sal <2000) then
update emp2 set sal =sal+1 where current of c ;
elsif(v_emp.sal>=2000) then
delete from emp2 where current of c;
end if;
end loop;
commit;
end;
創建了存儲過程不代表運行了存儲過程;
運行此存儲過程 :
方式一 exec p;
方式二
begin
p;
end;
2、帶參數的存儲過程
in 相當於程序里的參數,供傳入用,在存儲過程不能改變其值;
out 相當於程序里的返回值,在存儲過程中可以為其賦值傳出;
in out 既可以當參數又可以當返回值用;
不帶上述說明符默認為in類型;
下例中v_a v_b 為in類型
v_c 為out類型
v_d 為in out 類型
create or replace procere p(v_a in number,v_b number,v_c out number,v_d in out number)
is
begin
if(v_a > v_b) then
v_c := v_a;
else
v_c := v_b;
end if;
v_d := v_d+1;
end;
---> 調試時:
可以在命令窗口調試,出錯時 用show errors 顯示出錯信息;
可以在plDv中調試;
---> 運行時:
可以在命令窗口運行:
declare
v_a number:=3;
v_b number:=4;
v_c number;
v_d number:=5;
begin
p(v_a,v_b,v_c,v_d);
dbms_output.put_line(v_c);
dbms_output.put_line(v_d);
end;
可以在plDv中調試;