SQL 更新表的参数数量错误
Posted
技术标签:
【中文标题】SQL 更新表的参数数量错误【英文标题】:Wrong number of Parameters for SQL Update Table 【发布时间】:2017-08-29 14:54:35 【问题描述】:我正在尝试将不同表中的 ID 添加到表 RUSER_KSP_S_TI_ARP
strSQL = "UPDATE RUSER_KSP_S_TI_ARP
SET RUSER_KSP_S_TI_ARP.ID_FZG = TI_IDENTIFIKATION.ID_FZG,
RUSER_KSP_S_TI_ARP.ID_PULK = TI_IDENTIFIKATION.ID_PULK
WHERE RUSER_KSP_S_TI_ARP.ARP = TI_IDENTIFIKATION.ARP
AND RUSER_KSP_S_TI_ARP.BTNR = TI_IDENTIFIKATION.BTNR;"
CurrentDb.Execute strSQL, dbFailOnError
返回错误 3061,表示它需要 4 个参数并且得到的参数很少。
感谢您的帮助!
【问题讨论】:
“TI_IDENTIFIKATION”的值从何而来? 你没有 FROM... 看过这个?同样的错误:***.com/questions/5445062/… @Stix,来自 TI_IDENTIFIKATION 的值来自与 Oracle 服务器中的 ODBC 链接的表。 【参考方案1】:您需要加入 TI_INDENTIFICATION。
strSQL = "UPDATE ruser
SET ruser.ID_FZG = ti.ID_FZG,
ruser.ID_PULK = ti.ID_PULK
FROM RUSER_KSP_S_TI_ARP ruser
INNER JOIN TI_IDENTIFIKATION ti
ON ruser.ARP = ti.ARP AND ruser.BTNR = ti.BTNR;"
CurrentDb.Execute strSQL, dbFailOnError
【讨论】:
JOIN
不应该在 Access 中的 SET
之前吗? UPDATE RUSER_KSP_S_TI_ARP rUser INNER JOIN TI_IDENTIFIKATION ti ON ruser.ARP = ti.ARP AND ruser.BTNR = ti.BTNR SET ruser.ID_FZG = ti.ID_FZG, ruser.ID_PULK = ti.ID_PULK
不在例如微软 SQL
还不错,但标签是 Access。
公平地说,它在编辑之前也被标记为其他 RDBMS。
@DarrenBartrup-Cook 你是对的,Join 需要在 SET 之前。然后它工作。谢谢以上是关于SQL 更新表的参数数量错误的主要内容,如果未能解决你的问题,请参考以下文章
PDO 更新错误无效参数号:绑定变量的数量与令牌的数量不匹配
PLS-00306:调用 'GET_LINE' 时参数的数量或类型错误。在 PL/SQL 中的函数中传递字符串参数时出现此错误