当前位置: 首页 > 知识库问答 >
问题:

参数SQL Insert到语句SSIS包中

巫培
2023-03-14

我有一个SSIS包,它有一个Execute SQL任务,其中有一个INSERT语句,它将日志数据插入到跟踪执行时间的smss中的SSIS跟踪表中。每次尝试执行任务时,都会出现以下错误:[execute SQL task]错误:执行查询“INSERT INTO DBO.ssis_logging_details(execution_in...”失败,错误为:“必须声明标量变量”@execguid“。”。可能的失败原因:查询有问题、“ResultSet”属性未正确设置、参数未正确设置或连接未正确建立。

1.这是我在执行SQL任务的SQLStatement字段中的语句:

INSERT INTO dbo.SSIS_Logging_Details
          (Execution_Instance_GUID, Package_Name, Execution_Date)
          VALUES (@ExecGUID, @PackageName, GetDate())

2.我在执行SQL任务的参数映射选项卡中有这些参数:在这里输入图像描述

3.对于smss:tablessis_logging-details中的SQL表,以下是字段:

Execution_Date日期时间为空

4.对于“Configure SSIS logs:package”,我有一个提供程序类型为SQL Server SSIS Log provider的包(但无论何时打开它,它都会因为某种原因切换到SQL Server探查器..)在此输入图像说明

共有1个答案

轩辕成天
2023-03-14

在执行sql任务中,不使用查询中的变量名。用问号占位符替换它们,如下所示:

INSERT INTO dbo.SSIS_Logging_Details
          (Execution_Instance_GUID, Package_Name, Execution_Date)
          VALUES (?, ?, GetDate())

参数映射中,不要使用参数名,而是使用它们以0开头的位置作为第一个参数。因此,将@execguid替换为0并将@packageName替换为1

 类似资料:
  • 我下载了Visual Studio2015和SQL Data Tools 2015,因为我正在尝试制作一个简单的SSIS包,用于将一些数据行从服务器上的db中的表复制到另一个服务器上的另一个db中的表。我有一些复杂的问题使我的工作更加困难,例如需要动态地构建表名。到目前为止,我已经创建了一个执行Sql任务,用于删除目标表中的数据,以避免重复行。在输出中,我附加了一个数据流活动,包括一个Ole db

  • 问题内容: 该查询允许对结果进行过滤,而不是对我将如何更新的结果进行过滤,因此它仅严格显示大学= 2时的结果 我将全文搜索与LIKE结合使用的原因是,由于全文搜索具有的最小字母数,并且由于我处于共享主机计划中,因此无法修改设置。结果,我将全文和LIKE结合在一起以适应 问题答案: 修正括号 具有比更高的优先级,因此只能与结合使用,而不能与测试结合使用。

  • 我们在PostgreSQL数据库中有一个存储过程,它接受多个输入和多个输出参数。当我们执行以下操作时,来自PG Admin客户端的过程调用可以正常工作, 调用proc1(input1,input2,output1,output2) 但是,如果我们试图通过JDBC CallableStatement进行调用,我们会得到以下错误:, PostgreSQL驱动程序是“org.PostgreSQL.dri

  • 问题内容: 我有一些存储在文本文件中的SQL语句。如何将这些文件提取到SSIS中的字符串变量中,以便可以在多个地方使用同一查询? 回答问题: 查询是漫长而复杂的,我希望在真实的文本编辑器中而不是在SSIS文本框中进行编辑。我还希望那些无法访问SSIS或不知道如何使用它的人可以编辑查询。最后,每个查询都在许多不同的数据流中使用。如果我错了,请纠正我,但是如果我在多个地方使用相同的查询,我相信我必须使

  • 问题内容: 我想创建一个 存储过程 ,我想在表中插入值。但是我不知道我必须在哪个字段中插入值,而在 运行时,我将决定应在哪个字段中插入值 。我想做的是 如上例所示,是否可以在存储过程中传递这种类型的参数? 我也想使用条件 声明@Query nvarchar(4000)声明@ Query1 nvarchar(4000)声明@ParmDefinition nvarchar(500); Descript

  • 我使用以前的div,现在我想设置一个警报,如果div被移动到最左边。这是div: 现在它的宽度设置为,这是从早期的函数计算出来的。我想提醒时,它的边距左等于。我在js中尝试过这个,但没有运气: 有人能帮我解决这个问题吗?真正头疼的是我不能将更改为。