标签: ssis

SSIS 执行 SQL 存储过程输出参数类型不匹配

我在 SSIS 包上收到以下错误:

[执行 SQL 任务] 错误:执行查询“EXEC [spGetFileId] @zFileName,@Id”失败并出现以下错误:“分配给变量“User::FileId”的值的类型与当前变量类型不同。变量在执行过程中不能改变类型。变量类型是严格的,Object 类型的变量除外。

我创建了一个执行 SQL 任务,它在 SQL 服务器上执行一个简单的存储过程:

CREATE PROCEDURE [dbo].[spGetFileId]
    @zFileName VARCHAR(255),
    @Id INT OUTPUT
AS
BEGIN
    SET NOCOUNT ON;
    SELECT  @Id = [Id]
    FROM    [tblFileLog]
    WHERE   [zFileName] = @zFileName
END
Run Code Online (Sandbox Code Playgroud)

任务的SQLStatement属性是:

EXEC [spGetFileId] @zFileName, @Id
Run Code Online (Sandbox Code Playgroud)

我有以下SSIS 变量

  • 用户::文件(字符串)
  • 用户::文件 ID (Int)

并将参数映射到 SQL 任务上,如下所示:

  • 变量 | 方向 | 类型 | 范围
  • 用户::文件| 输入 | 字符串 | @z文件名
  • 用户::文件 ID | 输出 | 整数32 …

sql-server ssis stored-procedures

0
推荐指数
1
解决办法
2万
查看次数

将所有视图导出到文本文件

我们的一台服务器上的数据库中有许多视图。我需要将所有视图定义保存为以下格式的文本文件:

IF OBJECT_ID('<[Schema_Name].[VIEW_NAME]>') IS NOT NULL
    DROP VIEW <[Schema_Name].[VIEW_NAME]>
GO

<<View Definition Here>>

GO

GRANT SELECT ON <[Schema_Name].[VIEW_NAME]> TO [PUBLIC]
GO
Run Code Online (Sandbox Code Playgroud)

文本文件应命名为Schema_Name.VIEW_NAME.txt

我不想手动执行此操作,因为这会占用我所有的时间。知道这是否可以自动化吗?也许使用SSIS之类的?

windows sql-server ssis parallel-data-warehouse

0
推荐指数
2
解决办法
5056
查看次数

SSIS 其他目的地和来源缺失

我正在尝试学习 SSIS 并遇到了这个问题,我想添加 OLE 目标和源。

我的 SSIS 工具箱缺少很多东西,当我右键单击时,我没有选择项目选项(显示在屏幕截图的底部)

如果我转到普通工具箱菜单并右键单击并选择项目,则选择项目对话框没有添加 SSIS 项目的选项。怎么了?你能帮忙吗?

在此处输入图片说明 在此处输入图片说明

ssis ole

0
推荐指数
1
解决办法
2410
查看次数

SSIS 条件分割默认输出

我很难使用条件拆分。

我有两个条件:

Order | Output name | Condition

1 | Status column completed |(Status) == "Completed"

2 |Default | (Status) == "Completed" && (Status) == "Incomplete"

在我的第一个订单中,在 status 列中,所有已完成的状态都将出现在我的临时表中,而在我的第二个订单中,无论状态是已完成还是未完成,它都会进入另一个用作我的原始表的表。截至目前,使用该条件我的第二个订单不起作用。所有完成状态是唯一进入正确表的状态。请帮忙,谢谢。

sql ssis

0
推荐指数
1
解决办法
1890
查看次数

我正在使用 ssis 并且收到此错误“违反 PRIMARY KEY 约束。无法在对象中插入重复键。重复键值是

我是 SSIS 的新手,我收到一条错误消息。谁能帮我 ?我的数据中没有重复项

错误消息是 OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80040E2F 描述:“违反 PRIMARY KEY 约束 'PK_DimCourse'。无法在对象 'dbo.DimCourse' 中插入重复键。重复键值为 (CS1301)。”。

我当前的表看起来像这样

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[DimCourse](
    [CourseCode] [nvarchar](10) NOT NULL,
    [SubjectCode] [nvarchar](10) NOT NULL,
    [CourseNumber] [nvarchar](10) NOT NULL,
    [CourseTitle] [nvarchar](50) NOT NULL,
    [Level1] [nvarchar](20) NOT NULL,
    [Level2] [nvarchar](20) NOT NULL,
 CONSTRAINT [PK_DimCourse] PRIMARY KEY CLUSTERED 
(
    [CourseCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS …
Run Code Online (Sandbox Code Playgroud)

sql-server ssis

0
推荐指数
1
解决办法
5289
查看次数

SSIS:目的地来源(多个来源)

我有一个从源数据库提取到目标SQL Server表的SSIS包.

我想添加相同数据的第二个目标,以导出到Excel文件中.这是可能的还是我需要为此创建第二个流程?

ssis

0
推荐指数
1
解决办法
233
查看次数

检查文件夹中是否存在文件(SSIS、SDT 2015 和 SQL 2016)

我需要将多个文件加载到 SQL 表中。我有三种不同的格式,CSV、XLSX 和 XLS,但我将一次加载一种类型的文件,而不是不同文件类型的组合。

首先,如果文件存在与否,我将检查我的源文件夹。如果存在,将其加载到表中并移动到下一个文件。文件检查和选择过程必须是动态的。我不想在变量中硬编码文件名。当包启动时,每次运行包时,我都需要文件名变量来保存文件夹中的第一个文件。

如果在文件夹中找不到该文件,请发送邮件提醒该文件不存在。

例如,如果我的文件夹中有三个文件,

File1.csv
File2.csv
File3.csv
Run Code Online (Sandbox Code Playgroud)

我运行我的包,并variable = File1.csv在第一次运行时对文件名进行硬编码。我的包成功执行并将 file1 加载到表中并将其存档到存档文件夹。

下次运行每个循环时,它会查找变量 filename = File1,但它已经存档,因此我的包将无法处理文件夹中的 file2。我怎样才能正确地做到这一点?

sql ssis

0
推荐指数
2
解决办法
3万
查看次数

金斯威软件元数据字段返回空

Kingwaysoft中是否存在一些元数据字段返回的错误null?我有一个大型项目,正在下载所有帐户字段和元数据,除了owneridtype其他几个以外,它们都可以工作。像这样的字段customertypecodename都很好,并且我已经验证了它owneridtype与所有其他字段的映射相同。我的来源是fetchxml查询。

我看到这些帐户字段以及实体regardingobjecttypecode上的问题activitypointer

owneridtype

donotsendmarketingmaterialname

isprivatename

masteraccountidname

owneridtype

这是我的查询,减去自定义字段。如果需要,我可以添加它们。

<fetch mapping='logical'>
    <entity name='account'>
        <attribute name='accountcategorycode'/>
        <attribute name='accountcategorycodename'/>
        <attribute name='accountclassificationcode'/>
        <attribute name='accountclassificationcodename'/>
        <attribute name='accountid'/>
        <attribute name='accountnumber'/>
        <attribute name='accountratingcode'/>
        <attribute name='accountratingcodename'/>
        <attribute name='address1_addressid'/>
        <attribute name='address1_addresstypecode'/>
        <attribute name='address1_addresstypecodename'/>
        <attribute name='address1_city'/>
        <attribute name='address1_composite'/>
        <attribute name='address1_country'/>
        <attribute name='address1_county'/>
        <attribute name='address1_fax'/>
        <attribute name='address1_freighttermscode'/>
        <attribute name='address1_freighttermscodename'/>
        <attribute name='address1_latitude'/>
        <attribute name='address1_line1'/>
        <attribute name='address1_line2'/>
        <attribute name='address1_line3'/>
        <attribute name='address1_longitude'/>
        <attribute name='address1_name'/>
        <attribute name='address1_postalcode'/>
        <attribute name='address1_postofficebox'/>
        <attribute name='address1_primarycontactname'/>
        <attribute name='address1_shippingmethodcode'/> …
Run Code Online (Sandbox Code Playgroud)

ssis dynamics-crm kingswaysoft

0
推荐指数
1
解决办法
330
查看次数

将数据从本地SQL Server移到Azure SQL VM

我在具有SQL Server的Azure中有一个虚拟机,并希望通过SQL Azure虚拟机中的SSIS从本地SQL Server中获取夜间数据。我读到需要为Azure VM SSIS设置VNET才能访问本地SQL Server数据。那是对的吗?如果是这样,需要设置什么?

我知道Azure ExpressRoute是另一种选择,但由于我们每晚没有大量数据要传输,因此考虑到与之相关的高成本,我们认为这可能不是理想的选择。

sql-server ssis azure azure-sql-database

0
推荐指数
1
解决办法
505
查看次数

SSIS脚本任务移动所有文件不起作用

我在SSIS中使用脚本任务(C#)将所有.txt文件从一个文件夹移动到另一个文件夹.但是,当我执行此操作时,没有任何反应.脚本任务实际上报告成功但文本文件不移动.我正在为所有路径使用变量 - 它们都以2个反斜杠开头,以1个反斜杠结束.

我想要做的就是将所有文本文件从源目标移动到目标文件夹.

我错过了什么?

public void Main()
        {
            DirectoryInfo di = new DirectoryInfo(Dts.Variables["IN_Folder"].Value.ToString());

            string destinationFolder = Dts.Variables["User::IN_Folder_Processing"].Value.ToString();
            string sourceFolder = Dts.Variables["User::IN_Folder"].Value.ToString();


            FileInfo[] fi = di.GetFiles("*.txt");
            String filename = fi[0].Name;

            string sourceFileName = filename;
            string destinationFile = destinationFolder + sourceFileName;
            string sourceFile =sourceFolder + sourceFileName;

            if (File.Exists(destinationFile))
                File.Delete(destinationFile);
            // To move a file or folder to a new location:
            System.IO.File.Move(sourceFile, destinationFile);

            Dts.TaskResult = (int)ScriptResults.Success;
        }
Run Code Online (Sandbox Code Playgroud)

c# sql-server ssis

0
推荐指数
1
解决办法
290
查看次数