oracle存儲過程中的執行
Ⅰ oracle 中用什麼命令執行一個帶參數的存儲過程
具體如下:
1、第一步,創建一個新的存儲過程,見下圖,轉到下面的步驟。
Ⅱ oracle怎樣查看正在執行的存儲過程
1、在存儲過程中加一個輸出參數,執行完存儲過程後,判斷輸出參數的值;
2、查看存儲過程中處理數據後,你要的效果達到沒有。
Ⅲ 請問oracle怎麼執行存儲過程
我試驗過了,就是exec 存儲過程名或者execute 存儲過程名(參數),請你在仔細確認一下,你的存儲過程名寫沒寫對呀,或者你沒有進入sqlplus中?
----
以上,希望對你能有幫助。
Ⅳ oracle存儲過程中如何執行動態SQL語句
有時需要在oracle
存儲過程
中執行動態SQL
語句
,例如表名是動態的,或欄位是動態的,或查詢命令是動態的,可用下面的方法:
set
serveroutput
on
declare
n
number;
sql_stmt
varchar2(50);
t
varchar2(20);
begin
execute
immediate
'alter
session
set
nls_date_format=''YYYYMMDD''';
t
:=
't_'
||
sysdate;
sql_stmt
:=
'select
count(*)
from
'
||
t;
execute
immediate
sql_stmt
into
n;
dbms_output.put_line('The
number
of
rows
of
'
||
t
||
'
is
'
||
n);
end;
如果動態SQL
語句
很長很復雜,則可用包裝.
CREATE
OR
REPLACE
PACKAGE
test_pkg
IS
TYPE
cur_typ
IS
REF
CURSOR;
PROCEDURE
test_proc
(v_table
VARCHAR2,t_cur
OUT
cur_typ);
END;
/
CREATE
OR
REPLACE
PACKAGE
BODY
test_pkg
IS
PROCEDURE
test_proc
(v_table
VARCHAR2,t_cur
OUT
cur_typ)
IS
sqlstr
VARCHAR2(2000);
BEGIN
sqlstr
:=
'SELECT
*
FROM
'||v_table;
OPEN
t_cur
FOR
sqlstr;
END;
END;
/
在oracle
中批量導入,導出和刪除表名以某些字元開頭的表
spool
c:\a.sql
select
'drop
table
'
||
tname
||
';'
from
tab
where
tname
like
'T%';
spool
off
@c:\a
Ⅳ 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資料庫內的執行情況
是不是沒有做commit一類的工作,你執行測試時,是一個session,所以可以看到,如果全部執行執行,一定是通過另一個session在看,所以執行完要關閉命令窗口讓系統自動commit一下或手工做一下commit,再試試吧
Ⅶ 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 存儲過程怎麼執行
DECLARE v_value VARCHAR2(100); --聲明一個變數,用來存放返回的值BEGINP_MES_SB_JBEffectCheck('2010-01','2010-10',v_value); --執行存儲過程P_MES_SB_JBEffectCheck,該存儲過程接收2個時間值的參數,返回一個varchar類型的值 END;註:Oracle存儲過程不能返回一張表結構,所以在存儲過程里執行select 語句的時候,需要把查詢的結果insert到一張表裡,或者用一個變數來保存查詢結果(此時查詢結果必須是一行一列的值)
Ⅸ oracle怎麼執行存儲過程
sqlplus或者PL/SQL
SQL窗口
輸入(單獨調用存儲過程):
無參數
EXEC
過程名;
或者
BEGIN
過程名
END;
IN
參數
EXEC
過程名(入參數..);
或者
BEGIN
過程名(入參數...)
END;
OUT參數,IN
OUT參數
variable
綁定變數名
數據類型;
//定義一個變數接收出參數的值;
EXEC
過程名(:綁定變數名);
Ⅹ oracle存儲過程如何執行。
使用bat 去引用這些存儲過程,然後再通過計劃任務,掉用bat