[英]Unable to pass variable in Informix
我能够弄清楚如何使用 SQL 通过 Informix 连接到 Avaya CMS。 以下查询有效,但是当我尝试用变量替换“1/01/19”时,出现以下错误:“EIX000: (-1205) Invalid month in date”
有效的代码
select * from Openquery(CMS, 'select * FROM dagent WHERE ROW_DATE = ''1/01/19'' ');
不起作用的代码
DECLARE @startDate DATETIME
SET @startDate = '2021-01-21'
select * from Openquery(CMS, 'select * FROM dagent WHERE ROW_DATE = ''+@startDate+'' ');
有谁知道问题可能是什么?
麻烦的是单引号不够。
你有:
'select * FROM dagent WHERE ROW_DATE = ''+@startDate+'' '
^^ ^^
在每种情况下,如果您有两个相邻的单引号,您也需要第三个。 两个单引号 map 到一个单引号,因此引用的字符串包含+@startDate+
,而不是变量的串联。
你需要:
'select * FROM dagent WHERE ROW_DATE = '''+@startDate+''' '
现在将三元组 map 中的前两个单引号改为单引号; 第三个终止字符串, +@startDate+
变成字符串连接,然后下一个单引号开始一个新的字符串,两个单引号 map 到一个引号,空格和单引号结束字符串。
如何调试?
将您使用的字符串分配给变量并打印它。
将我建议的字符串分配给一个变量并打印它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.