【发布时间】:2018-03-23 11:40:35
【问题描述】:
我正在尝试一些基本的东西,发现 OracleParameter 似乎没有像在 C# 中那样绑定
在我的示例CaseLocalId 中使用OracleParameter 时,参数似乎没有绑定。查询运行但不会返回任何行。但是当使用辅助选项and c.case_local_id like nvl('{CaseLocalId}','%') 时,事情会按预期工作。
有什么想法吗?
string CaseLocalId = null;
using (OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings["asd"].ConnectionString))
{
conn.Open();
OracleCommand cmd = new OracleCommand
{
Connection = conn,
Parameters =
{
// CaseLocalId
new OracleParameter
{
ParameterName = "CaseLocalId",
OracleDbType = OracleDbType.Varchar2,
IsNullable = true,
Value = CaseLocalId,
}
},
CommandText = $@"
select c.case_local_id, c.title, c.description
from asd.CC_CASE_TASK t, asd.CC_CASE c
where c.case_local_id = t.case_local_id(+)
and c.case_local_id like nvl(':CaseLocalId','%') -- doesn't work
-- and c.case_local_id like nvl('{CaseLocalId}','%') -- this works
",
CommandType = CommandType.Text,
};
}
【问题讨论】:
-
我没有看到任何 PL/SQL。也许应该是 Oracle SQL(参见
plsql标签信息)。