生活随笔
收集整理的這篇文章主要介紹了
Oracle存储过程 使用游标、数组的配合查询
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
查詢輸入的門牌號碼是否在標準門牌庫中存在。存在則返回相應的號碼。
1 public string GetValidate(){
2
3 OracleConnection conn =
ConnectOra();
4 string retRepMphm;
5 try
6 {
7 conn.open();
8 OracleComandType cmd=
conn.CreateCommand();
9 cmd.CommandType=
Commandype.StoredProcedure;
10 cmd.CommandText=
""sp_querybzdm;
11 OracleParameter[] parameters =
new OracleParameter[
4];
12 parameters[
0]=
new OracleParameter(
"mplxs",OracleType.VarChar);
13 parameters[
1]=
new OracleParameter(
"bzdms",OracleType.VarChar);
14 parameters[
2]=
new OracleParameter(
"mphms",OracleType.VarChar);
15 parameters[
3]=
new OracleParameter(
"remphm",OracleType.VarChar,
2000);
16
17 parameters[
0].Value=
"大門牌";
18 parameters[
1].Value=
"呂嶺路";
19 parameters[
2].Value=
"1號";
20 parameters[
3].Value=
ParameterDirection.Output;
21
22 foreach(OraclePrameter parameter
in parameters)
23 cmd.Parameters.Add(parameter);
24 }
25 cmd.ExecuteNonQuery();
26 retRepMphm=parameters[
3].value==
null?
"":parameters[
3].Value.Tostring();
27 catch(Exception){}
28 throw ex;
29 }
30 finaly{
31
32 conn.close();
33 }
34
35 create or replace proceduce sp_querybzdm
36 (
37 mplxs
in varchar2;----
定義變量
38 bzdm
in varchar2;
39 mphms
in varchar2;
40 remphm
out varchar2 ---
輸出變量
41 )
is
42 countnum number;
43
44 --
游標
45 cursor curmas
is
46 select regexp_substr(mphms ,
'[^,]+',
1,level)
as we
47 from dual
48 connect by level<=length(mphms )-length(replace(mphms,
','))+
1
49
50 begin
51 for row_ma
in curmas loop
52 begin
53 select count(*) into countnum
from YW_LMP_QD
where BZHM=
row_mas.we ;
54 if(count(*)<>
0) then
55 if str_result
is not
null then
56 str_result:=str_result||
','||
row_ma.we
57 else
58 str_result:=
row_ma.we
59 end
if;
60 end
if;
61 end
62 end loop;
63 if str_result
is not
null then
64 remphm:=rtrim(str_result,
',');
65 end
if
66 end
View Code
轉載于:https://www.cnblogs.com/mancomeon/p/Oracle.html
總結
以上是生活随笔為你收集整理的Oracle存储过程 使用游标、数组的配合查询的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。