當前位置:首頁 » 存儲配置 » 調用oracle存儲過程

調用oracle存儲過程

發布時間: 2023-01-08 12:01:23

Ⅰ 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.

Ⅱ 如何調用ORACLE程序包中的存儲過程

pl/sql里,select
語句必須接into
,不接into那就得返回一個游標出去,比如
create
or
replace
package
test_package
is
procere
query_test(num
number,po_cursor
out
sys_refcursor);
end
test_package;
create
or
replace
package
body
test_package
is
procere
query_test(num
number,po_cursor
out
sys_refcursor)
is
begin

select
unitname,tradetype,workernumber

from
test

where
income=num;
end
query_test;
end
test_package;

Ⅲ oracle資料庫調用存儲過程

這個需要分情況的
如果是在應用程序(java等)中調用存儲過程,需要根據相應語言的語法來進行。這個可以通過查找相應語言的幫助來找到。
如果是在Oracle的其他存儲過程中調用,直接寫存儲過程名就可以了。傳入相應的參數,即可執行。
如果在Oracle的命令行中,使用EXEC
存儲過程名(參數)
的方式即可調用。
如果存儲過程執行的語句寫在SQL文件中,則可以通過調用文件的方式執行,即
SQL>
@D:\SQL\example.sql的形式

Ⅳ 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中調試;

Ⅳ oracle中,一個存儲過程怎麼調用另一個存儲過程

已經有人回答的很專業了!x0dx0a原則就是:你要調用哪個存儲過程,就要為該存儲過程傳入它需要的參數x0dx0a它定義的幾個,你就傳入幾個x0dx0a當然參數的類型要對應上。x0dx0a還有就是如果一個存儲過程中定義了out類型的參數,當你在調用它的時候,這個out類型的參數也要參入,看它定義的是什麼類型的out參數。然後定義一個該類型的變數,傳入進去,用於接收存儲過程返回的值。然後用這個值,去做下面的邏輯。

Ⅵ 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;

Ⅶ 如何使用java語言調用oracle存儲過程

1.api上的方法為 Connection.prepareCall(java.lang.String)
2.prepareCall(String sql)
throws SQLException
參數:sql - 可以包含一個或多個 '?' 參數佔位符的 SQL 語句。通常此語句是使用 JDBC 調用轉義語法指定的。
3.JDBC API 提供了一個存儲過程 SQL 轉義語法,該語法允許對所有 RDBMS 使用標准方式調用存儲過程。此轉義語法有一個包含結果參數的形式和一個不包含結果參數的形式。分別為:
{?= call <procere-name>[(<arg1>,<arg2>, ...)]}
{call <procere-name>[(<arg1>,<arg2>, ...)]}

4.示例,無返回值調用:Connection.prepareCall({ call p_test(p1,p2)})

Ⅷ oracle 函數中能調用存儲過程嗎

oracle 函數中能調用存儲過程,舉例如下:

1、無參數存儲過程的調用

--創建無參存儲過程
CREATEORREPLACEFUNCTIONstu_procRETURNVARCHAR2IS
--聲明語句段
v_namevarchar2(20);
BEGIN
--執行語句段
SELECTo.snameINTOv_nameFROMstudentowhereo.id=1;
RETURNv_name;
END;

--調用無參存儲過程
DECLARE
BEGIN
DBMS_OUTPUT.put_line('在PL/SQL中列印的結果:'||stu_proc);
END;

2、入參存儲過程的調用

--創建入參存儲過程
CREATEORREPLACEFUNCTIONstu_proc(v_idINNUMBER)RETURNVARCHAR2IS
--聲明語句段
v_namevarchar2(20);
BEGIN
--執行語句段
SELECTo.snameINTOv_nameFROMstudentowhereo.id=v_id;
RETURNv_name;
END;

--調用入參存儲過程
DECLARE
BEGIN
DBMS_OUTPUT.put_line('在PL/SQL中列印的結果:'||stu_proc(1));
END;

Ⅸ 請問oracle怎麼執行存儲過程

我試驗過了,就是exec 存儲過程名或者execute 存儲過程名(參數),請你在仔細確認一下,你的存儲過程名寫沒寫對呀,或者你沒有進入sqlplus中?

----
以上,希望對你能有幫助。

熱點內容
手機配置高玩不了單機游戲怎麼辦 發布:2025-07-26 15:53:05 瀏覽:258
手機設置開機手勢密碼後如何解鎖 發布:2025-07-26 15:39:14 瀏覽:39
迭代優化演算法 發布:2025-07-26 15:25:45 瀏覽:949
東風本田買哪個配置好 發布:2025-07-26 15:10:01 瀏覽:765
plsql游標 發布:2025-07-26 15:09:51 瀏覽:128
android轉字元串數組 發布:2025-07-26 15:08:05 瀏覽:269
實時產量編程 發布:2025-07-26 15:03:33 瀏覽:114
c語言漢諾塔演算法 發布:2025-07-26 14:56:13 瀏覽:937
androidqq空間分享 發布:2025-07-26 14:27:27 瀏覽:724
為什麼招生辦公室登錄密碼錯誤 發布:2025-07-26 14:27:13 瀏覽:665