问题标签 [execute-sql-task]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6862 浏览

ssis - 如何在执行 SQL 任务中使用“返回值”参数

我知道“参数映射”中有 3 种类型的参数 - 输入参数、输出参数和返回参数。我了解如何使用输入和输出参数。但是当我尝试将参数类型设置为“返回参数”时,它不起作用。下面是我的 SQL Server 存储过程。

在 SSIS Execute SQL 任务中,我设置了

  1. 连接类型:OLE DB

  2. 参数映射:变量名:User::@random(我在SSIS中设置了一个User参数:random INT32),Direction:ReturnValue,Type:Numeric,Parameter Name:@random

  3. SQL 语句:

我在 SSIS 中创建了一个返回参数,但它不起作用并引发错误。

0 投票
1 回答
697 浏览

sql-server - SSIS 组件故障不起作用

我正在使用 Visual Studio 2017 和 SQL Server 2016。我有一个 SSIS 包,在该包中我有一个 SQL 脚本任务,它调用一个简单的脚本,其中有错误。我不知道为什么当出现错误时,流程不去抛出Failure路径。

这是我的包的一部分,我有失败路径。

在此处输入图像描述

这是我的 sql 代码:

这是我的错误:

为什么我的任务失败与我的失败路径有争议?

在此处输入图像描述

0 投票
3 回答
502 浏览

batch-file - 如何仅执行文件夹中名称以两位数开头的所有 SQL 文件,而忽略所有其他 SQL 文件?

我有以下批处理代码,它执行文件夹的所有 SQL 文件。

但现在我只想执行名称以两位数开头的文件,例如:

但不是这样的文件:

有人可以告诉我如何更改代码以仅过滤文件名以 2 位数字开头的文件吗?

0 投票
1 回答
127 浏览

oracle - 我如何在 SSIS 中执行 SQL TASK 中以 unicode 形式获取数据

我在 SSIS 中开发了一个项目。首先,我将 a 拖放Execute SQL TASK到 ControlFlow 中。之后我写一个Execute SQL TASK这样的查询:

Result Set我添加两个新变量,FnameLName使用 index 0, 1. 但是当我调试包时,这两个变量的值是'???''????'

我的 oracle 字符集是“AL32UTF8”。我测试了Execute SQL TASK1252、1256、65001的代码页,但是在所有的代码页中,我都无法解决我的问题。

0 投票
2 回答
335 浏览

sql - 执行 SQL 任务中的存储过程不持久化对数据库的更改

我有一个使用更新语句的执行 SQL 任务,我想将其更改为存储过程。

我的存储过程在 SSMS 中运行良好,但是当我尝试在执行 SQL 任务中使用存储过程时,组件不会失败,但是它不会将更新的更改保留到数据库中。

连接管理器是可靠的,因为更新语句有效,如果连接管理器无论如何都错了,它甚至无法调用存储的过程。

我曾尝试删除并重新创建该组件,但这并没有帮助。似乎查询正在执行,成功,然后更改回滚。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
143 浏览

ssis - DBCC 命令在 SSIS 中执行 SQL 任务中重新设置表的标识

我有一种情况,每天都会加载一个事实表。

有两个 SSIS 包加载此表。

1) Package1_FullLoad.dtsx - 每周日运行,完全刷新

2) Package2_DailyLoad.dtsx - 除周日外,全天运行,仅删除和加载过去 14 天的数据。

现在,完整加载包 (Package1_FullLoad.dtsx) 有一个执行 SQL 任务,截断事实表中的所有行。

然后数据流从头开始加载事实表。

在这种情况下,事实表的标识值从 1 开始并以 1 递增,这很好,没有问题。

但是,对于每日加载包(Package2_DailyLoad.dtsx),在 DELETE 语句(仅删除过去 14 天的数据)之后,在 Execute SQL Task 中,我设置了以下代码:

DBCC CHECKIDENT('dbo.FactTable', RESEED,1) DBCC CHECKIDENT('dbo.FactTable', RESEED)

然后我运行数据流来加载数据,它只插入与过去 14 天对应的数据。

假设满载后事实表有10行(以为例更好地说明情况),今天删除3行,今天要插入5行(插入和删除由今天的每日加载包完成),新的标识值必须从 8 开始,到 12 结束。相反,我看到新的标识值从 11 开始,到 15 结束。

我在 SSIS 执行 SQL 任务中看不到此 DBCC 代码有任何影响。

此 DBCC 代码在数据库端的 SSMS 中运行良好。

关于如何解决这个问题的任何想法?

0 投票
0 回答
152 浏览

stored-procedures - 在运行时创建执行 SQL 任务

我正在开发一个 SSIS 包,它使用扩展事件检查存储过程的性能。我们有一个执行 SQL 任务,其中有一个 SQL 查询,该查询在运行时确定,因为那些(读取)存储过程的参数已经被硬编码并存储在表中。

现在,我还需要运行(编写)存储过程调用,因为它们(动态生成)依赖于先前存储过程的输出集,所以我不能硬编码参数。每个存储过程的参数和结果集都不相同,因此很难使用单个执行 SQL 任务。

我想过为每个(写入)存储过程创建单独的执行 SQL 任务并将它们添加到序列容器中,但这似乎不是一种实用的方法。

有人可以建议解决这个问题的任何方法吗?

0 投票
2 回答
201 浏览

sql-server - SSIS:使用 SQLStatement 输出记录作为完整结果集来输入每个循环容器

我正在尝试使用来自 SQL 任务的具有完整结果集结果集的 SQLStatement 的输出作为对象来馈送到 foreach 循环容器中。

SQL 语句是

我想将来自源 OLEDB SQL 连接的查询输出作为对象传递给容器,以将表传输到其他 OLEDB SQL 连接。

我的参数设置如下:

  • 变量名称 = User::Tables_to_be_transferred
  • 方向 = 输入
  • 数据类型 = VARCHAR
  • 参数名称 = 新参数
  • 参数大小 = -1

结果集: - 结果名称 = 0 - 变量名称 = User::Tables_to_be_transferred

但是当我运行代码时,我收到以下错误消息:

我该如何解决?任何帮助,将不胜感激。

0 投票
2 回答
2595 浏览

ssis - 如何修复错误 - “没有可用于指定 SQL 语句的断开连接的记录集。”

我正在执行一个存储过程来将数据集收集到一个对象类型的变量中。存储过程有 2 个参数并且工作正常。当我在 ssis 的“执行 Sql 任务”中使用相同的存储过程时,我收到错误消息“[执行 SQL 任务] 错误:执行查询”EXEC [dbo].proc_procname] @CD1 = ?, @C... " 失败,出现以下错误:“没有可用于指定 SQL 语句的断开连接的记录集。”。可能的失败原因:查询问题、“ResultSet”属性设置不正确、参数设置不正确或连接未正确建立。

0 投票
0 回答
486 浏览

sql-server - 运行执行sql任务时ssis超时

运行执行 sql 任务时如何手动处理 ssis 超时。在执行sql任务中,我调用的是存储过程connectiong类型是oledb connection TImeout is 0 (infinity)

当我尝试在 BIDS 中运行时出现以下错误。

[执行 SQL 任务] 错误:执行查询“Exec [test].[user_empinfor_sp]”失败,出现以下错误:“查询超时已过期”。可能的失败原因:查询有问题,“ResultSet”属性设置不正确,参数设置不正确,或连接未正确建立。

请告诉我如何避免 ssis 包端的超时过期时间以及我们需要遵循哪些步骤来避免 ssis 包中的此错误。