的OracleParameter和IN子句 [英] OracleParameter and IN Clause
本文介绍了的OracleParameter和IN子句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有没有办法将参数添加到使用System.Data.OracleClient的IN子句。
例如:
查询字符串=SELECT * FROM表名其中用户名IN(:PRAM);
的OracleCommand命令=新的OracleCommand(查询,康涅狄格州);
command.Parameters.Add(:婴儿车,OracleType.VarChar).value的='奔','山姆';
解决方案
您可以更轻松地做到这一点的 ODP.NET
:
-
创建一个
TABLE
键入你的数据库:CREATE TYPE t_varchar2为VARCHAR2表(4000);
-
创建集合参数:
的OracleParameter参数=新的OracleParameter(); param.OracleDbType = OracleDbType.Varchar2; param.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
-
填写参数:
参数=新的字符串[2] {奔,萨姆};
-
参数为以下查询绑定:
SELECT * FROM表名其中用户名(表(CAST(:参数AS t_varchar2)));
Is there a way to add a parameter to an IN clause using System.Data.OracleClient.
For example:
string query = "SELECT * FROM TableName WHERE UserName IN (:Pram)";
OracleCommand command = new OracleCommand(query, conn);
command.Parameters.Add(":Pram", OracleType.VarChar).Value = "'Ben', 'Sam'";
解决方案
You can do it more easily with ODP.NET
:
Create a
TABLE
type in your database:CREATE TYPE t_varchar2 AS TABLE OF VARCHAR2(4000);
Create a collection parameter:
OracleParameter param = new OracleParameter(); param.OracleDbType = OracleDbType.Varchar2; param.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
Fill the parameter:
param = new string[2] {"Ben", "Sam" };
Bind the parameter to the following query:
SELECT * FROM TableName WHERE UserName IN (TABLE(CAST(:param AS t_varchar2)));
这篇关于的OracleParameter和IN子句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文