首页新闻找找看学习计划

使用Cyq.Data时,查询oracle数据库时,参数化时间类型时报错

0
悬赏园豆:20 [已解决问题] 解决于 2018-06-29 14:04

想问一下秋大和其他朋友,有没有遇到过这样的问题。在查询oracle数据库中,参数化日期时间类型时,在执行action.Select(where);时,Oracle报如下需错误。

 

System.Exception
HResult=0x80131500
Message=V5.7.4.4 Error : Oracle Call Function::ExeDataReader():ORA-01745: 无效的主机/绑定变量名
Oracle.cyora.SQL:
select * from CONTAINER where REC_DATE between :start and :end
Para: start-> 2018/5/1 0:00:00
Para: end-> 2018/5/15 0:00:00
ExeDataReader():ORA-01745: 无效的主机/绑定变量名。

 

复制代码
            MDataTable mData = new MDataTable();
            using (MAction action = new MAction("Container"))
            {
                string where = "REC_TIME between to_date( :start, 'yyyy-MM-dd' ) and to_date( :end, 'yyyy-MM-dd')";
                action.SetPara(":start","2018-05-01", DbType.String);
                action.SetPara(":end", "2018-05-15", DbType.String);
        //如果采用字符串拼接的where条件,则可以正常执行。
        //string where = string.Format("REC_TIME between to_date( '{0}', 'yyyy-MM-dd' ) and to_date( '{1}', 'yyyy-MM-dd')", "2018-05-01", "2018-05-15");
mData
= action.Select(where); } string str = mData.ToJson();
复制代码
 
 
 
天际鑫的主页 天际鑫 | 初学一级 | 园豆:186
提问于:2018-06-06 11:02
< >
分享
最佳答案
0

原来是参数化的变量命名占用了oracle的关键字。是一个低级错误!

天际鑫 | 初学一级 |园豆:186 | 2018-06-29 14:02
其他回答(1)
0

问问CYQ群里的群主

收获园豆:20
男人要爽 | 园豆:10 (初学一级) | 2018-06-07 16:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册