请用C#语言调用Oracle的存储过程

匿名网友 匿名网友 发布于: 2015-08-30 00:00:00
阅读 116 收藏 0 点赞 0 评论 0

Function GetList(keywords In varchar2

,p_info_list_Cursor out get_data_cur_type)

Return Number

As

Begin

open p_info_list_Cursor For

Select * from Test where Key=keywords;

Return 0;

End;

—————-

OracleConnection OracleConn = new OracleConnection(连接字符串);

OracleCommand cmd = new OracleCommand(“GetList”, OracleConn);

cmd.Parameters.AddRange(new OracleParameter[]

{

new OracleParameter(“keyWords”, OracleType.VarChar),

new OracleParameter(“ReturnValue”, OracleType.Number, 0,                  ParameterDirection.ReturnValue, true, 0, 0, “”,DataRowVersion.Default,                   Convert.DBNull),

new OracleParameter(“p_info_list_Cursor”, OracleType.Cursor, 2000,                  ParameterDirection.Output, true, 0, 0, “”,DataRowVersion.Default, Convert.DBNull)

});

cmd.Parameters[0].Value = ‘t07美女’;

cmd.Parameters[0].Direction = ParameterDirection.Input;

cmd.CommandType = CommandType.StoredProcedure;

OracleConn.Open()

OracleDataReader rdr=cmd.ExecuteReader();

//其他代码

        OracleConn.Close();

C#执行Oracle的参数过程,Sql 语句中使用”:” 表示参数。

在Sql Server 中我们可以按以下方式使用SQL 语句: “Insert into Table (Field1,field2) values(@Value1,@Value2) “, 然后我们再New 几个Paramter: new SqlParameter(“@Value1″,value)…

在查询字符串中使用@+字符 来描述参数,在SqlParameter中的参数名也要使用”@”符号。

而在Oracle中Sql 语句不能使用@符号, 以冒号”:”代替. 如:

——string Sql = “Insert into SEARCH_HISTORY(KEYWORDS,PHONE,RESULT_ID,SEARCH_TIME) values(:KEYWORDS,:PHONE,:RESULT_ID,:SEARCH_TIME)”;

OracleCommand cmd = new OracleCommand(Sql, OracleConn);

cmd.Parameters.AddRange(new OracleParameter[]{

new OracleParameter(“KEYWORDS”,OracleType.VarChar),

new OracleParameter(“PHONE”,OracleType.VarChar),

new OracleParameter(“RESULT_ID”,OracleType.Number),

new OracleParameter(“SEARCH_TIME”,OracleType.DateTime)

});

cmd.Parameters[0].Value = Keywords;

cmd.Parameters[1].Value = Phone;

cmd.Parameters[2].Value=2;

cmd.Parameters[3].Value = DateTime.Now;

评论列表
文章目录