一个无厘头的SQL出错
declare @maxTime varchar(25)
select @maxTime=''''+max(CONTACTENDTIME)+'''' from T_Pub_CommonInfo
SELECT * FROM openquery(ORA8172,'SELECT * FROM ICDMAIN.T_PUB_COMMONINFO WHERE CONTACTENDTIME>'+@maxTime+' AND STAFFCITY =''05'' AND ACCEPTERNO IN (''4085'',''4086'',''4087'',''4088'',''4089'',''4090'',''4096'')')
服务器: 消息 170,级别 15,状态 1,行 9
第 9 行: '+' 附近有语法错误。
各路高手,请帮忙解决一下,语法哪里错了,谢谢。
[解决办法]
declare @str varchar(2000)
set @str='SELECT * FROM ICDMAIN.T_PUB_COMMONINFO WHERE CONTACTENDTIME>'+@maxTime+' AND STAFFCITY =''05'' AND ACCEPTERNO IN (''4085'',''4086'',''4087'',''4088'',''4089'',''4090'',''4096'')'
SELECT * FROM openquery(ORA8172,@str)
[解决办法]
openquery 带参数 。。。 还是直接拼字符串吧!
[解决办法]
字符串左右需要单引号
[解决办法]
OPENQUERY ( linked_server ,'query' )
参数
linked_server
表示链接服务器名称的标识符。
' query '
在链接服务器中执行的查询字符串。该字符串的最大长度为 8 KB。
OPENQUERY 不接受其参数的变量
[解决办法]
declare @maxTime varchar(25)
select @maxTime=trim(max(CONTACTENDTIME)) from T_Pub_CommonInfo
SELECT * FROM openquery(ORA8172,'SELECT * FROM ICDMAIN.T_PUB_COMMONINFO
WHERE CONTACTENDTIME>'''+@maxTime+''' AND STAFFCITY =''05''
AND ACCEPTERNO IN (''4085'',''4086'',''4087'',''4088'',''4089'',''4090'',''4096'')')
[解决办法]