oracle存儲過程out參數
1. oracle 過程參數 out的調用問題。
OUT 參數必須傳入的, 下面是一個 OUT 與 IN OUT 參數使用的例子。
sql> CREATE OR REPLACE PROCEDURE HelloWorld2 (
2 p_user_name IN VARCHAR2,
3 p_out_val OUT VARCHAR2,
4 p_inout_val IN OUT VARCHAR2
5 ) AS
6 BEGIN
7 dbms_output.put_line('Hello ' || p_user_name || p_inout_val || '!');
8 p_out_val := 'A';
9 p_inout_val := 'B';
10 END HelloWorld2;
11 /
Procere created.
SQL> DECLARE
2 p_outval VARCHAR2(10);
3 p_inoutval VARCHAR2(10) := '~Hi~';
4 BEGIN
5 HelloWorld2('Edward', p_outval, p_inoutval);
6
7 dbms_output.put_line('p_outval=' || p_outval);
8 dbms_output.put_line('p_inoutval=' || p_inoutval);
9 END;
10 /
Hello Edward~Hi~!
p_outval=A
p_inoutval=B
PL/SQL procere successfully completed.
2. oracle存儲過程out參數要輸入嗎
out是輸出參數,不需要手動輸入
參數 in 是需要手動輸入的。
3. oracle存儲過程中使用游標作為out類型參數,求救!
1、你定義的【RET_CURSOR_VALUE】是一個游標變數,當他作為參數傳入過程【GET_EMPINFOBYDEPNO】時候已經被打開(就是open...for),在主程序中再度打開是沒有必要的也是錯誤的(且游標變數只能用【open...for】的形式打開)。
2、所以把【OPEN
RET_CURSOR_VALUE】這句話刪掉,就沒有問題了。
*******************************
口說無憑,oracle實施log請參照:
說明:我把empno改成20了(因為表裡面沒有1的數據),還有把open語句注掉了。
*******************************
[SCOTT@ORA1]
SQL>DECLARE
2
RET_CURSOR_VALUE
PKG_CONST.REF_CURSOR;
3
RET_EMPNO
EMP.EMPNO%TYPE;
4
RET_ENAME
EMP.ENAME%TYPE;
5
BEGIN
6
GET_EMPINFOBYDEPNO(20,
RET_CURSOR_VALUE);
7
--OPEN
RET_CURSOR_VALUE
;--報游標類型有誤,未解決!!!
8
LOOP
9
FETCH
RET_CURSOR_VALUE
10
INTO
RET_EMPNO,
RET_ENAME;
11
EXIT
WHEN
RET_CURSOR_VALUE%NOTFOUND;
12
DBMS_OUTPUT.PUT_LINE('empNo
is:'
||
RET_EMPNO
||
',empName
is'
||
13
RET_ENAME);
14
END
LOOP;
15
CLOSE
RET_CURSOR_VALUE;
16
END;
17
/
empNo
is:7369,empName
isSMITH
empNo
is:7566,empName
isJONES
empNo
is:7902,empName
isFORD
---
以上,希望對你有所幫助。
4. oracle 中不同調用不同package的存儲過程,out參數為什麼看不到
1、你的過程定義的參數是out也就是出參,要往外傳值的,執行完這個過程得到的結果放在出參里傳給調用它的地方
SELECT COUNT(*) INTO nums FROM students
得到一個數值 放在 nums裡面傳出去了
2、存儲過程的固定格式:
CREATE OR REPLACE PROCEDURE 過程名(參數名 參數類型(in/out) 數據類型(varchar/number/char...))
AS
聲明一些變數...
BEGIN
做一些業務處理(增,刪,查,改...)
END;
3、參數的寫法:
參數名 in或者out或者inout 數據類型
in的就是需要往裡傳數據的參數,out的就是過程處理完往外傳的數據,inout的就是既往裡傳也往外傳的參數
4、在java里調用過程的時候:
{call 過程名(入參的值,出參的變數,...)}
2011/8/7 10:18:07
5. Oracle存儲過程中 in out參數類型怎麼定義
types.mytype類型要和test表結構一致
6. oracle的存儲過程怎麼調用有out值參數的存儲過程
1、你的過程定義的參數是out也就是出參,要往外傳值的,執行完這個過程得到的結果放在出參里傳給調用它的地方
SELECT COUNT(*) INTO nums FROM students
得到一個數值 放在 nums裡面傳出去了
2、存儲過程的固定格式:
CREATE OR REPLACE PROCEDURE 過程名(參數名 參數類型(in/out) 數據類型(varchar/number/char...))
AS
聲明一些變數...
BEGIN
做一些業務處理(增,刪,查,改...)
END;
3、參數的寫法:
參數名 in或者out或者inout 數據類型
in的就是需要往裡傳數據的參數,out的就是過程處理完往外傳的數據,inout的就是既往裡傳也往外傳的參數
4、在java里調用過程的時候:
7. oracle中帶有out類型的存儲過程應該如何調用跪求大神指點我
pro5_out本來就是一個存儲過程,所以你直接調用就可以了,另外你下面調用的時候寫的是一個pl/sql塊,所以需要參照pl/sql塊的寫法,不然的話就會出現value3沒有聲明的情況,可以參照上面的declare那一段就可以了。
8. oracle存儲過程中怎麼理解傳入傳出參數(in out)
Oracle 過程中定義了in|out|in out3中參數模式,每個參數可以選擇其一
in 是參數的默認模式,這種模式就是在程序運行的時候已經具有值,在程序體中值不會改變。
舉個例子
create or replace procere update_price(
p_proct_id in NUMBER,
p_factor in NUMBER)
AS
.....
你在引用這個過程的時候給參數傳入值
exexute update_price(2,2.5);
這是定義的2個參數就得到了值,in模式下值不能變
out模式定義的參數只能在過程體內部賦值,表示該參數可以將某個值傳遞回調用他的過程
in out 表示高參數可以向該過程中傳遞值,也可以將某個值傳出去
9. oracle存儲過程,IN OUT 類型的參數怎麼傳參數
in out類型參數是過程運行開始會把參數值傳入過程,運行結束後會把參數值再傳出去。
比如說過程test(v_cs in out number);功能為把帶入的參數加1;
v_num:=1;
test(v_num);
dbms_output.put_line(v_num);
將輸出2;
10. oracle存儲過程的in out 值傳遞,這是怎麼傳遞的看不懂啊
p_user_name的IN,表示這個參數是傳入參數。
p_out_val的OUT,表示這個是傳出參數。也就是JAVA中return的值。
p_inoutval的IN OUT,表示這個既是傳入、又是傳出參數。也就是說,你可以利用它傳入該存儲過程,然後接到處理後的這個參數。一個參數搞定了2項功能(傳入,傳出)