oracle存儲過程out
A. oracle存儲過程的in out 值傳遞,這是怎麼傳遞的看不懂啊
p_user_name的IN,表示這個參數是傳入參數。
p_out_val的OUT,表示這個是傳出參數。也就是JAVA中return的值。
p_inoutval的IN OUT,表示這個既是傳入、又是傳出參數。也就是說,你可以利用它傳入該存儲過程,然後接到處理後的這個參數。一個參數搞定了2項功能(傳入,傳出)
B. Oracle 存儲過程中OUT參數的用法
aa
C. oracle存儲過程out參數要輸入嗎
out是輸出參數,不需要手動輸入
參數 in 是需要手動輸入的。
D. 請問ORACLE中 存儲過程中的IN 和OUT 是做什麼的啊
in 是傳入的參數,out是返回的結果
E. 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;
F. oracle的存儲過程怎麼調用有out值參數的存儲過程
聲明與out參數類型一致的變數,然後與普通的存儲過程一樣調用它(傳參時,out參數的位置傳入你聲明的那個變數就可以)就行了。
G. 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
---
以上,希望對你有所幫助。
H. oracle 存儲過程 out參數
首先,恭喜你猜對了,要去掉參數。
想必這個規定是oralce本身定義好的規則。
仔細推敲一下,我想道理是這樣的:
假設規定了傳入參數的長度,一旦你傳入的實際變數的長度超過定義的長度,那oralce怎麼辦? 還需要增加校驗和提示吧?
這樣以來莫不如不超過該類型的長度即可,大家用起來也方便:)
猜想你是和定義變數弄混了。變數的定義是要指定長度的。
I. 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.
J. oracle怎麼在存儲過程里調用out參數的存儲過程
在所定義的存儲過程中,參數的名字後面加上out即可。
例如:
create or replace procere pr1(id in varchar2, name out varchar2)
is
begin
select table_name into name from table1 where table_id = id;
end pr1;
其中存儲過程pr1有兩個參數,id是輸入參數,只能向該存儲過程傳入值,用in修飾。name是輸出參數,只能返回該存儲過程的賦與name的結果,用out修飾。