问题标签 [biml]

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 投票
0 回答
418 浏览

ssis - BIML 脚本任务未按预期生成

我遇到了一个奇怪的BIML问题。我正在使用 BIML 创建 SSIS 包,并且包中的脚本任务很少。它们是非常简单的脚本任务,下面是一个示例。

BIML 可以很好地生成包,但是脚本任务只有在我在设计器中打开脚本任务时才有效,单击编辑脚本然后关闭而不进行任何更改。如果我立即运行该软件包,则会引发以下错误。

无法将“System.__ComObject”类型的 COM 对象转换为接口类型“Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSVa​​riables100”</p>

在编辑器中打开和关闭脚本任务修复了我无法理解的问题。我有大约 50 个包,每个包有 4 个脚本任务,所以我无法打开每个包中的每个脚本任务以使其工作。

我将 Visual Studio Prof 2015 与 BIMLExpress 版本 5.0.61915.0 和 .NET 框架 4.7 一起使用。这个问题已经占据了我一天的大部分时间,没有任何可能的解决方案。

另一个有趣的事情是我在临时 PC 上安装了 SSDT 2015(VS 2015 Shell),它在那里工作正常,不幸的是我不能使用第二台 PC 进行开发。我已经比较了这两个包,我发现唯一的区别是BinaryItem元素的值。

为了进一步测试这一点,我将脚本任务保持在最低限度,问题是由使用 Dts.Variables 引起的。我不明白是什么导致了这种奇怪的行为。任何帮助是极大的赞赏。提前致谢。小号

0 投票
1 回答
354 浏览

ssis - BIML SSIS ScriptTask 作为数据源 - OutputBuffer 出错

尝试使用 ScriptTask 作为数据源通过 BIML 生成包时出现以下错误。我有一个大的(大约 5GB)XML 文件要加载,并想使用 StreamReader 将数据导入数据库。

“Output0Buffer”不包含“PORTF_LIST”的定义,并且找不到接受“Output0Buffer”类型的第一个参数的扩展方法“PORTF_LIST”(您是否缺少 using 指令或程序集引用?)。

这发生在每一列。这些列是动态的,并且来自 ac# 类中查看 dacpac 的单独方法,因此应该在任何地方使用相同的名称和大小写。

文件示例如下:

输出缓冲区定义如下(有 250 个奇数列,但都遵循相同的模式:

我尝试添加到缓冲区的脚本任务代码如下:

我检查了控制台应用程序中的代码,它可以很好地读取 XML 文件,但 BIML 没有运气。大约有 250 多列,所以我试图避免手动执行此操作,所以如果您有任何想法我做错了什么,我将非常感激!

0 投票
1 回答
804 浏览

c# - 在 Bimlscript 中引用 Biml 连接字符串(C# 控制块)

我在 Biml 中有一个连接:

我还有 ac# control nuggets 代码来从数据库(MyDB)中获取数据表:

是否可以不重复连接字符串并直接在 Bimlscript 中引用“MyConn”?我的意思是:

谢谢,齐亚德

0 投票
2 回答
539 浏览

c# - BIML SsisDataTypeOverride 不起作用

ssis 中的数据转换任务不允许重用现有列以轻松自动映射到目标。

所以我编写了一个 foreach 列并评估了数据类型,将其动态添加到列集合中。

我注意到 DataType 和 Length 是必需的,但是它们对 ReplaceExisting=true 没有影响。

有没有人找到一种方法来强制使用 biml 在派生任务中转换新数据类型?

这不起作用。

在生成 SSIS 包时,使用 (DT_WSTR,length) 转换列确实会出现,但不会更改派生任务中为该列定义的数据类型。

0 投票
1 回答
335 浏览

ssis - BIML - 如何使用 BIMLExpress 在脚本项目中设置 .NET Framework 版本

我正在使用免费的 BIMLExpress 在 SSIS 包中创建脚本任务。由于我们的环境中安装了不同版本的 .NET Framework,因此我确实需要能够为脚本项目设置 Framework 版本。虽然我知道如何手动更改它,但手动更改它会非常困难。

我已经尝试寻找解决方案,这个答案建议使用 TargetFrameworkVersion 属性,但我根本看不到该属性,我尝试使用它但没有效果。我不知道它是否仅适用于 BimlStudio 付费版本。

我将 BIMLExpress 5.0.61915.0 与 Visual Studio 2015 一起使用。

任何帮助是极大的赞赏。谢谢

0 投票
1 回答
152 浏览

sql - BIML 功能支持

GetDatabaseSchema 似乎没有获取表值函数。是否有另一种使用 BIML 从函数中提取元数据的方法?

0 投票
1 回答
525 浏览

c# - 如何将 c# 与 BIML 混合使用?

我有一个 BIML 文件,包括从 SQL 服务器获取 sql 字符串的 C# 脚本,以及可以自定义 sql 字符串的 BIML 项目参数,编码如下:

……

我想用

@[$Project::pTenantKey]用项目参数替换返回的 sql 字符串中的关键字ProjectSSIS60::pTenantKey

但是错误消息显示

找不到别名“ProjectSSIS60”

. 请问如何在 C# 字符串中引用项目参数?先感谢您!

0 投票
1 回答
182 浏览

ssis - BIML:在数据流中为 XMLSource 自动创建 OleDbDestinations

我的暂存数据库中有一个带有 2 个输出路径和 2 个表的 XML 文件。表和输出路径确实具有相同的名称。而不是写 2 次 OleDbDestination 并更改 Inputpath 和 ExternalTableOutput 我想使用一些 Bimlscript。

我目前的解决方案:

我想达到的目标:

可悲的是,这不起作用。;-)

AstXMLSourceNode 的 API-Documentation 中,我找到了属性“DataflowOutputs”,它“获取此转换的所有数据流输出路径的集合”(听起来很有希望,嗯?)但我什至无法弄清楚如何在 Bimlscript 中引用 XMLSource反正。

从 RootNode 开始,我能够找到我的 Dataflow-Task,但后来我被卡住了,没有设法“找到”我的 Transformations\XMLSource。

任何帮助将非常感激!!

顺便说一句:如果有一种解决方案可以根据给定的 XSD 自动创建目标表,这也将更好。:-)

0 投票
2 回答
248 浏览

sql - SSIS BIML 生成带括号的 SQL 代码

我使用 BIML 为 SSIS 动态创建加载包,以将数据从 Informix 加载到 SQL Server。问题是这个BIML代码产生了下面的SQL

但是由于括号,这在我的源数据库中不起作用。有什么方法可以动态获取不带括号的列列表和表名吗?

0 投票
1 回答
516 浏览

c# - 无法为脚本组件生成 BIML

我正在尝试使用 BIML <ScriptComponentProject> 标签创建一个简单的流程,但它对我不起作用!

  • 如果我手动创建数据流,那么它工作得很好!

    • 我的数据流有:SRC > SCRIPT-COMPONENT > TGT
    • 我添加的唯一逻辑是为每个传入行计算一个行号(暂时保持逻辑绝对简单)
  • 执行手动解决方案时:

    • 顺序行号存储在 TGT 表中 (test_np_02)
    • 伟大的!
  • 但是,当我尝试使用附加的 BIML 创建完全相同的包时,出现以下错误:


SSIS 输出日志:


当我尝试使用 BIML 创建 PKG 时,我不确定出了什么问题:

  • 当我手动创建包时(使用相同的代码),这些错误从未弹出
  • 我将手动解决方案中的重要 C# 文件复制粘贴到 BIML


问题/想法:

  1. 是否与必须用于 ProjectCoreName、AssemblyProduct 和 AssemblyTitle 的 GUID 有关?

    • 这是每次扩展BIML时自动生成的吗?
    • 如果是这样,我如何在 BIML 本身中为这些项目创建一个 GUID .. 以便它在扩展后直接工作?
  2. 这与我必须在 <Files> 标签内的 BIML 中创建 .cs 文件的顺序有关吗?

    • 我目前假设 <Files> 标签中 <File> 项目的实际顺序与 BIML 无关
  3. 难道我也必须在 BIML 中生成“Resources.resx/Resources.Designer.cs”和“Settings.settings/Settings.Designer.cs”吗?

  4. 在每个 .cs 文件中都有“#region 命名空间”部分真的很重要吗?

    • 我从手册中删除了它 .. 仍然可以正常工作!


请帮忙。

笔记:

  • 我正在使用 SSDT 2015 和 Varigence BIMLExpress 2017(内部版本 5.0.61915.0)

  • 我知道这可以很容易地在 SRC 本身的 SQLServer 中使用 ROW_NUMBER() 来完成,但是:

    • 我在附加示例中使用 OleDbSource 只是为了保持简单
    • 最后,我将不得不使用 BIML 生成数百个代码 PKG,它将 SRC 作为平面文件,而不是 OleDB。
    • 显然,我希望我生成的 ScriptComponents 在扩展后立即工作.. 无需任何进一步的手动干预:)


谢谢,


NP


BIML 文件:https ://drive.google.com/file/d/10O3aSL5IO34ULS44wl7IX4LUmPH_pI6V/view?usp=sharing