You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Execute SQL Statement插入数据时遇语法错误求助

SQL语法错误问题:使用Execute SQL Statement插入文本类型变量失败

我正尝试用Execute SQL Statement连接器更新数据库表,但反复收到“SQL语句语法错误 near ..”的报错。目标表结构简单,只需向VIN、PN5D、RO三列插入值,使用的SQL语句如下:

INSERT INTO [dbo].[Test_RPA3] (VIN, PN5D, RO)
VALUES (%VIN_F%, %PN5D_F%, %RO_F%)

%VIN_F%、%PN5D_F%、%RO_F%均为文本类型(截图显示为“Valor de texto = 文本值”),按道理应该能正常插入,但报错了。

错误详情如下:

Microsoft.Flow.RPA.Desktop.Modules.SDK.ActionException: Erro na instrução SQLIncorrect syntax near 'BHBH41DBHP767923'. ---> System.Data.OleDb.OleDbException: Incorrect syntax near 'BHBH41DBHP767923'.
em System.Data.OleDb.OleDbDataReader.ProcessResults(OleDbHResult hr)
em System.Data.OleDb.OleDbDataReader.NextResult()
em System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
em System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
em System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
em System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
em System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
em Microsoft.Flow.RPA.Desktop.Modules.Database.Actions.DatabaseActions.ExecuteSQLStatement(Variant connectionString, Variant sqlConnectionVariable, Variant sqlCommand, Variant& result, Int32 timeout, Int32 getConnection)
--- Fim do rastreamento de pilha de exceções internas ---
em Microsoft.Flow.RPA.Desktop.Modules.Database.Actions.ExecuteSqlStatement.Execute(ActionContext context)
em Microsoft.Flow.RPA.Desktop.Robin.Engine.Execution.ActionRunner.Run(IActionStatement statement, Dictionary2 inputArguments, Dictionary2 outputArguments)


问题原因及解决办法

  • 核心问题:文本类型的变量值没有用单引号包裹,导致数据库把变量值(比如报错里的BHBH41DBHP767923)识别成SQL语法的一部分,引发语法错误。
  • 修正后的SQL语句:
INSERT INTO [dbo].[Test_RPA3] (VIN, PN5D, RO)
VALUES ('%VIN_F%', '%PN5D_F%', '%RO_F%')
  • 额外注意:如果变量值本身包含单引号(比如文本里有'),需要做转义处理,避免SQL注入或语法错误。以SQL Server为例,用两个单引号''代替单个单引号即可。

内容的提问来源于stack exchange,提问作者Rafael Rodrigues Santos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 08:53:39