存儲過程入參
『壹』 sql server 中 一個要輸入參數和輸出參數的存儲過程。
1、創建存儲過程,包含入參、出參,返回入參除以的數據;
create or replace procere test_proc(in_num number, out_num out number)
as
begin
out_num := in_num/2;
end;
『貳』 執行存儲過程怎麼傳入參數
在Oracle中定義存儲過程的時候有定義傳入參數的個數和類型的。
createprocerepro_name(v_para1invarchar2,v_para2invarchar2)
調用的時候:
declare
v_para1varchar2(30):='parameter1';
v_para2varchar2(30):='parameter2';
begin
pro_name(v_para1,v_para2);
end;
/
『叄』 sql 存儲過程 怎麼傳入參數
執行帶參數的存儲過程的方法如下:
Exec sp_configure 'allow updates',1 --允許更新系統表。
exec dbo.User_ChangeObjectOwnerBatch 'OldOwner','dbo'
以上是兩個例子。
SQL Server中執行帶參數的存儲過程的方法是:
EXEC 存儲過程名字 '參數1','參數2',數值參數
EXEC 是一個關鍵字。
字元串參數使用單引號括起來,數值參數不需要使用單引號
『肆』 存儲過程中參和入參的標志分別是
in,out。in|out存儲過程具有入參和出參兩種參數選擇,in表示的是入參,out表示的是出參,衫罩在使用過程的時候,入參必須得有仔握對應的變數傳入,出參得或戚鬧有對應的變數接收。
『伍』 Oracle調用存儲過程多個入參可以不全部傳參么
不行,就算沒有對應的參數,也要傳一個空值,不然會調用不到方法。
『陸』 ORACLE中如何為存儲過程傳遞參數
第一種:只讀。參數是只讀的,不能修改,即調用時傳遞進來的是常量,或者變數(但變數不能在存儲過程中修改正薯)。通常select及DML類型的存儲過程傳遞的是in類型的參數。
第二種:只寫。忽略調用語句傳遞的任何參數,並在函數(過程)內部給這些參數賦值,因此是只寫的。(這種情況是在函數或過程內部給參數重新賦值,但重新賦值後的參舉御者數是無法被外部調用的(好像游標類型的參數除外))
CREATE OR REPLACE PROCEDURE "SCOTT"."SWAP" (firstValue out
number, secondValue out number) is
temp number;
begin
temp := firstValue;
firstValue := secondValue;
secondValue := temp;
end swap;
外部調用:
set serveroutput on;
declare
firstVal number;
secondVal number;
begin
firstVal := 10;
secondVal := 20;
scott.swap(firstVal,secondVal);
dbms_output.put_line('first is ' || firstVal);
dbms_output.put_line('second is ' || secondVal);
end;
無法在外部訪問到firstValue與secondValue的值。此時列印出的結果為:
first is
second is
第三種:讀或寫。這可以完全控制參數,讀取傳遞的參數的值。可以再函數(過程)內部修改參數的值,在退出函數(過程)後,這些參數被賦給在函數內部寫入的值,這樣就可以返回多個值。(即入口參數寫入值後,可以傳遞到函數(過程)的外部,供外部調用的時候使用)
ps:函數中的返回值為如下幾種:
char; varchar2; number; integer; date; boolean; table; record
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.
『柒』 cx_oracle調用存儲過程,入參為自定義對象
在cx_oracle 中定義一個參數比如 rec_data TBL_MY_OBJECT;
然後給予賦值 比如 rec_data.id =XXX;rec_data .DATA =XXX;
然後調用INIT_MY_TYPE(rec_data );即可。
『捌』 怎麼在java代碼中設置oracle存儲過程中的入參和出參
public String insertJCSP(Map parmaters) {
// TODO Auto-generated method stub
String str=null;
Connection conn = null;
CallableStatement csm = null;
conn = (Connection) sqlSession.getSqlSessionFactory().openSession()
.getConnection();
try {
csm = conn
.prepareCall("{Call pr_insert_JcInfo(?,?,?)}"); //調用存儲過程
csm.setString(1, (String) parmaters.get("lottId")); //第一個入參數
csm.setString(2, (String) parmaters.get("idata"));//第二個入參數
csm.registerOutParameter(3, java.sql.Types.VARCHAR);//返回參數
csm.execute();
str = csm.getString(3); //取得返回參數