create

目前創(chuàng)新互聯(lián)公司已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、順德網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
table
p_proc(pid
number(2),pname
varchar2(20),pname_class
varchar2(20));
--用于存儲存儲過程和參數(shù)名的表并插入四條數(shù)據(jù),insert
into
p_proc
values(1,'a','v1');insert
into
p_proc
values(2,'b','v2');insert
into
p_proc
values(3,'c','v3');insert
into
p_proc
values(4,'d','v4');
四個(gè)存儲過程的的狀況為:
create
or
replace
procedure
v1(v_para
varchar2)asbegin
dbms_output.put_line(v_para);end;create
or
replace
procedure
v2(v_para
varchar2)asbegin
dbms_output.put_line(v_para);end;create
or
replace
procedure
v3(v_para
varchar2)asbegin
dbms_output.put_line(v_para);end;create
or
replace
procedure
v4(v_para
varchar2)asbegin
dbms_output.put_line(v_para);end;如下調(diào)用存儲過程的存儲為(請忽略一些測試輸出):
給你一個(gè) 傳遞參數(shù)的例子
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 /
Procedure 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 procedure successfully completed.
SQL
這個(gè)代碼是幫你搜到的,自己先理解了再測試一下:
SqlConnection lSQLConn = null;
SqlCommand lSQLCmd = new SqlCommand();
//Declare a DataAdapter and a DataSet
SqlDataAdapter lDA = new SqlDataAdapter();
DataSet lDS = new DataSet();
//...Execution section
// create and open a connection object
lSQLConn = new SqlConnection(connStr);
lSQLConn.Open();
//The CommandType must be StoredProcedure if we are using an ExecuteScalar
lSQLCmd.CommandType = CommandType.StoredProcedure;
lSQLCmd.CommandText = "sp_YourSPName";
lSQLCmd.Parameters.Add(new SqlParameter("@Parm1", aParm1));
lSQLCmd.Parameters.Add(new SqlParameter("@Parm2", aParm2));
lSQLCmd.Parameters.Add(new SqlParameter("@Parm3", aParm3));
lSQLCmd.Parameters.Add(new SqlParameter("@Parm4", aParm4));
lSQLCmd.Connection = lSQLConn;
//Fill the DataAdapter with a SelectCommand
lDA.SelectCommand = lSQLCmd;
lDA.Fill(lDS);
in out類型參數(shù)是過程運(yùn)行開始會(huì)把參數(shù)值傳入過程,運(yùn)行結(jié)束后會(huì)把參數(shù)值再傳出去。
比如說過程test(v_cs in out number);功能為把帶入的參數(shù)加1;
v_num:=1;
test(v_num);
dbms_output.put_line(v_num);
將輸出2;
沒有參數(shù)視圖這一實(shí)現(xiàn)的吧。
網(wǎng)上有人用package中定義的變量作為視圖的查詢參數(shù)值(當(dāng)然不是直接使用package中的參數(shù),而是調(diào)用package中返回此變量值的函數(shù)),在使用視圖之前先調(diào)用package中的設(shè)置該變量值的方法,這樣來曲線實(shí)現(xiàn)所謂的“參數(shù)視圖”。
從代碼上來看,你應(yīng)該是使用的這種方法。那么,你應(yīng)該在select語句之前,先調(diào)用p_view_param中設(shè)置值的方法,執(zhí)行完成之后再執(zhí)行select。
不過,個(gè)人認(rèn)為直接使用返回結(jié)果集的函數(shù)會(huì)更方便些。
本文名稱:oracle怎么傳參數(shù) oracle動(dòng)態(tài)傳參
瀏覽路徑:http://www.js-pz168.com/article30/hjjopo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站排名、動(dòng)態(tài)網(wǎng)站、App開發(fā)、企業(yè)網(wǎng)站制作、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)