Code Bye

oracle in参数化查询

那位高手知道,C#访问oracle数据库怎么样进行in参数化查询?网上查找了很久,没有找到相关资料。谢谢。
sqlserver是
string sql = “EXEC(“select UserRoleName from UserRole(nolock) where UserRoleId in(“+@UserRoleId+”)”)”;
解决方案

30

引用:

这种写法是sqlserver的,oracle的不行

oracle用的是冒号,没错呀

10

假如
select UserRoleName from UserRole where UserRoleId in(“||:UserRoleId||”)
参数化的值是1,2,3
结果是
select UserRoleName from UserRole where UserRoleId in(“1,2,3‘)
这显然是不对的
但,参数化的值是1″,”2”,”3 的话
就应该得
select UserRoleName from UserRole where UserRoleId in(“1″,”2”,”3‘)
这样就对了
你可以试试

50

1、where UserRoleId = 1 和 where  UserRoleId = “1”  是一样的
为防止 SQL 攻击,也是建议在 SQL 指令中对数值量加引号
2、数据库里面保存的是整形的值拼接的字符串 是什么意思?
3、对于 s = “1,2,3”;
s = string.Join(“”,””, s.Split(“,”));
就变成 s = “1”,”2″,”3″  了,没有什么难度

110

引用:

不行哦。

http://stackoverflow.com/questions/1625649/oracle-parameters-with-in-statement
http://stackoverflow.com/questions/541466/oracleparameter-and-in-clause
https://community.oracle.com/message/3436511
看着都不爽


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明oracle in参数化查询