我有一个通过ODBC连接到oracle db的sql server。
在sql框中,我使用以下命令运行查询以提取数据:
EXEC ('SELECT * FROM dbName.tableName') AT [LinkedServer];
这将返回包含列名等的完整表
我现在正尝试使用以下值更新表:
EXEC ('INSERT INTO dbName.tableName (VALUE_ID, VALUE_NAME, VALUE_SITE, ACTIVE) VALUES ("18", "TEST", "3", "Y")') AT [LinkedServer];
有了这个,我得到以下内容:
返回链接服务器“LinkedServer”的OLE DB提供程序“MSDASQL” 消息“[Oracle] [ODBC] [Ora] ORA-00984:此处不允许列”。
从表中选择all后,我可以确认它存在,并且这些列名下存在值。
我已经读过这个问题可能是由于使用列名作为值引起的,但这是一个很好的例子。
有什么想法吗?
答案 0 :(得分:0)
正如所建议的那样,因为EXEC被包装在单引号中,我错误地将值包装在双引号中。我测试了2个单引号和这个已解决的问题。