OLE DB提供程序“;IBMDASQL";对于链接服务器返回的消息";SQL0104:令牌。无效

OLE DB提供程序“;IBMDASQL";对于链接服务器返回的消息";SQL0104:令牌。无效,sql,db2,ibm-midrange,openquery,Sql,Db2,Ibm Midrange,Openquery,当从存储过程运行时,简单的OpenQueryInsert失败,但若我手动运行它,同样的事情也会发生 INSERT INTO OPENQUERY([ServerName], 'select LocationCode, Name, Zip from Location.TKT') VALUES( 1200, 'David', 52330); 同一个SP在生产环境中运行正常,但在开发机器中运行不正常。我得到以下错误。有线索

当从存储过程运行时,简单的OpenQueryInsert失败,但若我手动运行它,同样的事情也会发生

INSERT INTO OPENQUERY([ServerName], 
                       'select LocationCode, Name, Zip from Location.TKT') 
               VALUES( 1200, 'David', 52330);
同一个SP在生产环境中运行正常,但在开发机器中运行不正常。我得到以下错误。有线索吗

错误消息: 链接服务器“ServerName”的OLE DB提供程序“IBMDASQL”返回消息“SQL0104:令牌”。无效。有效令牌:。 原因…:在令牌处检测到语法错误。令牌不是有效的令牌。有效令牌的部分列表为。此列表假定该语句在该令牌之前是正确的。错误可能在该语句中较早出现,但该语句的语法在此之前似乎是有效的。恢复…:执行以下一项或多项操作:请执行以下操作,然后重试该请求:--验证标记区域中的SQL语句。。更正该语句。错误可能是缺少逗号或引号,可能是拼写错误,也可能与子句顺序有关。--如果错误标记为,请更正SQL语句,因为它没有以有效子句结尾。”


insert语句毫无意义。我想你弄错了。它应该是
在您的表(listOfColumnsOfTheTable)中插入值(ActualValuesOnForeachGivenColumn)
在您的代码中,您传递了一列和一个字符串作为列和树值。您使用的帐户在两个系统上具有不同的访问权限。由于在某些情况下,如果您没有访问权限,DB对象甚至对您不可见,因此会出现类似这样的错误——因此,对象[ServerName]在DEV中用户无法访问,但正在生产中