sql语句执行cmd.ExecuteScalar()时出现 ORA-01036: 非法的变量名/编号 错误!

int p = Convert.ToInt32(SqlHelper.ExecuteScalar("select count(*) from AN_TO_AGENCY t where t.gw_time between to_date(':stTime','yyyy-MM-dd HH24:mi:ss') and to_date(':edTime','yyyy-MM-dd HH24:mi:ss')", new OracleParameter(":stTime", dp_startTime.Value.ToString()), new OracleParameter(":edTime", dp_endTime.Value.ToString())));

改为
int p = Convert.ToInt32(SqlHelper.ExecuteScalar("select count(*) from AN_TO_AGENCY t where t.gw_time between to_date(:stTime,'yyyy-MM-dd HH24:mi:ss') and to_date(:edTime,'yyyy-MM-dd HH24:mi:ss')", new OracleParameter(":stTime", dp_startTime.Value.ToString()), new OracleParameter(":edTime", dp_endTime.Value.ToString())));

把sql语句里面的参数的单引号去掉了,不应该带单引号。追问

又报ORA-00904:"T"."GW_TIME": 标识符无效 错误;应该不是单引号的问题

追答

select count(*) from AN_TO_AGENCY t where t.gw_time
改成
select count(*) from AN_TO_AGENCY where gw_time
既然只有一个表,就不要用别名了,不是所有数据库都支持的。
还有就是检查列名GW_TIME是否正确

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网