當前位置:首頁 » 存儲配置 » oracle執行存儲過程

oracle執行存儲過程

發布時間: 2022-01-12 06:48:36

① oracle 資料庫 怎麼執行存儲過程

一。 概述Oracle存儲過程開發的要點是:
1; 使用Notepad文本編輯器,用Oracle PL/sql編程語言寫一個存儲過程;
2; 在Oracle資料庫中創建一個存儲過程;
3; 在Oracle資料庫中使用SQL*Plus工具運行存儲過程;
4; 在Oracle資料庫中修改存儲過程;
5; 通過編譯錯誤調試存儲過程;
6; 刪除存儲過程;二。環境配置
包括以下內容:
1; 一個文本編輯器Notepad;
2; Oracle SQL*Plus工具,提交Oracle SQL和PL/SQL 語句到Oracle database。
3; Oracle 10g express資料庫,它是免費使用的版本;
需要的技巧:
4; SQL基礎知識,包括插入、修改、刪除等
5; 使用Oracle's SQL*Plus工具的基本技巧;
6; 使用Oracle's PL/SQL 編程語言的基本技巧;三。寫一個存儲過程
在Notepad, 寫下:
CREATE OR REPLACE PROCEDURE skeletonISBEGINNULL;END;把文件存為skeleton.sql.
讓我們一行行遍歷這個存儲過程:
1 CREATE OR REPLACE PROCEDURE skeleton2 IS3 BEGIN
4 NULL;5 END;行1:CREATE OR REPLACE PROCEDURE 是一個SQL語句通知Oracle資料庫去創建一個叫做skeleton存儲過程, 如果存在就覆蓋它;行2:IS關鍵詞表明後面將跟隨一個PL/SQL體。
行3:BEGIN關鍵詞表明PL/SQL 體的開始。
四。創建一個存儲過程
SQL語句CREATE OR REPLACE PROCEDURE在Oracle資料庫中創建、編譯和保存一個存儲過程。
從Window打開SQL*Plus並且從SQL*Plus 登錄到你的資料庫;打開skeleton.sql文件。
在SQL命令提示符下輸入以下命令:
SQL@skeletonSQL/SQL*Plus裝載skeleton.sql文件的內容到 SQL*Plus緩沖區並且執行SQL*Plus語句;SQL*Plus 會通知你存儲過程已經被成功地創建。

② oracle 存儲過程執行

發兩個例子你仔細看。
--1.存儲過程
create or replace procere print(msg varchar2)
is
begin
dbms_output.put_line(msg);
end;

--1.1 調用存儲過程
execute print('helloworld');

--1.3 傳遞參數
create or replace procere myabs(p_num1 IN number,p_num2 OUT number)
is
begin
if p_num1 >0 then
p_num2 := p_num1;
else
p_num2 := (0 - p_num1);
end if;
end;

--調用
declare
v_result number;
begin
myabs(-987,v_result);
print(v_result);
end;
打字不易,如滿意,望採納。

③ Oracle 如何能得到執行過的存儲過程

需要在存儲過程中定義的時候把開始執行時間和結束時間列印出來。

舉例如下:

創建存儲過程:


createorreplaceprocerep_testasv_begintimevarchar2(20);v_endtimevarchar2(20);v_strvarchar2(10);beginv_begintime:=to_char(sysdate,'yyyy-mm-ddhh24:mi:ss');select'badkano'intov_strfromal;v_endtime:=to_char(sysdate,'yyyy-mm-ddhh24:mi:ss');dbms_output.put_line('開始時間為:'||v_begintime);dbms_output.put_line('結束時間為:'||v_endtime);end;end;

執行存儲過程:


beginp_test;end;

執行結果:

說明:由於樣例存儲過程過於簡單,但在進行過多數據處理的時候,看到的結果會比較明顯。

④ oracle查看執行過哪些存儲過程

selectt.sql_id,
t.sql_text,
s.plan_hash_value,
s.optimizer_cost,
s.executions_total,
s.elapsed_time_total,
s.disk_reads_total,
s.buffer_gets_total
fromDBA_HIST_SQLSTATs,DBA_HIST_SQLTEXTt
wheres.sql_id=t.sql_id
andt.sql_textlike'%存儲過程名稱%';

沒有想到其他好辦法,確實不太好查了,把存儲過程當作SQL來查找吧。

⑤ 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 sql/plus中執行存儲過程

因為有輸出參數,所以只能通過declare塊執行,如下:

declare
聲明變數,就是CodeType 、input_code、cu_patient ,可對前兩個直接賦值
begin
GetSampleInfo(CodeType, input_code,cu_patient) ;
end;
/

----
多動動手!如果沒輸出參數可以直接"exec 過程名(參數)"調用,否則就按我說的做,自己往裡添加代碼就行

⑦ 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 中用什麼命令執行一個帶參數的存儲過程

具體如下:

1、第一步,創建一個新的存儲過程,見下圖,轉到下面的步驟。

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

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

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

⑩ 在oracle中 存儲過程如何調用存儲過程

如果是在三層中的話,把DAL、BLL寫出來,然後在Web層中調用BLL中的方法,就這樣。。

熱點內容
刪資料庫事件 發布:2024-11-15 12:10:54 瀏覽:455
資料庫選課管理系統 發布:2024-11-15 12:10:15 瀏覽:126
android音樂波形圖 發布:2024-11-15 11:57:12 瀏覽:378
福建社保銀行卡初始密碼是多少 發布:2024-11-15 11:47:40 瀏覽:911
游戲多開用什麼配置 發布:2024-11-15 11:46:51 瀏覽:729
管理java版本 發布:2024-11-15 11:44:03 瀏覽:629
ndk編譯的程序如何執行 發布:2024-11-15 11:43:18 瀏覽:626
輕應用伺服器適合搭建網站嗎 發布:2024-11-15 11:36:08 瀏覽:246
c語言的百分號 發布:2024-11-15 11:34:24 瀏覽:31
一加五安卓8什麼時候推送 發布:2024-11-15 11:19:40 瀏覽:854