.ec开发中的1213错
有两套开发环境A、B,操作系统都是HP-UX,数据库为Informix Dynamic Server 2000。在环境A有一个.ec程序,有如下的sql语句:
EXEC SQL DECLARE TranBill_cur cursor for
select * from b2b_blotter
where acc_counter2 in ( select bran_code from com_branch
group by bran_code )
and valid_flag = 0
and disposal_mode = 0
and acct_date = :trans_date
order by acc_counter2, trans_date, voucher_no;
其中,valid_flag、disposal_mode字段类型都是char(1)。
在环境A中运行程序,没有问题。
将程序(包括源程序、Makefile、相关的库文件等)拷贝到环境B,编译运行时报错-1213(A character to numeric conversion process failed.),将sql语句修改为:
EXEC SQL DECLARE TranBill_cur cursor for
select * from b2b_blotter
where acc_counter2 in ( select bran_code from com_branch
group by bran_code )
and valid_flag = '0'
and disposal_mode = '0'
and acct_date = :trans_date
order by acc_counter2, trans_date, voucher_no;
编译后运行正常。
在.ec程序的sql语句中,char()类型字段作查询条件时,什么情况下必须要加引号,什么情况下又可以不加呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当表中b2b_blotter中,valid_flag或disposal_mode包含了非0-9字符的记录时,不加引号会导致转换错误;
建议:尽可能减少由数据库根据字段类型和用户所赋的值进行动态转换的开销;