Sql server 对CHARINDEX的ODBC调用返回;无效的列名";

Sql server 对CHARINDEX的ODBC调用返回;无效的列名";,sql-server,ms-access-2010,Sql Server,Ms Access 2010,使用Access 2010对SQL Server运行直通查询。查询如下: select da.o_acttime,ds.o_statename,dd.o_filename,dd.o_projectno from dms_audt da inner join dms_doc dd on da.o_objguid=dd.o_docguid left join dms_stat ds on ds.o_stateno=da.o_numparam2 where da.o_action=1012 and c

使用Access 2010对SQL Server运行直通查询。查询如下:

select da.o_acttime,ds.o_statename,dd.o_filename,dd.o_projectno from dms_audt da
inner join
dms_doc dd
on
da.o_objguid=dd.o_docguid
left join
dms_stat ds
on
ds.o_stateno=da.o_numparam2
where
da.o_action=1012
and
charindex(".xls",dd.o_filename)>0
order by o_projectno
我在响应中收到的错误消息是:

ODBC--call failed.
[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name '.xls'. (#207)

我调用charindex()时出错了吗?

修复了它。“.xls”应该用单引号引起来,如“.xls”。

有人刚刚编辑了这篇文章,添加了一句话:“此外,charindex只包含一个字符。您可能需要patindex(“%.xls%”,dd.o_filename)。”这很有用,但应该是它自己的答案或对我的答案的评论,而不是对我答案内容的更改。