在 BIML 中的数据流之前创建表

2023-12-03

我正在使用 BIML 和 BIDSHelper 创建 SSIS 包。我正在尝试将数据从 csv 导入到 sql server。我想在数据流发生之前在目标数据库中创建表。这是我的代码:

<Biml xmlns="http://schemas.varigence.com/biml.xsd">
<Connections>       
    <OleDbConnection Name="CM_OLE" 
                     ConnectionString="Data Source=(localdb)\projects;Initial Catalog=test;Integrated Security=SSPI;Provider=SQLNCLI11">
    </OleDbConnection>
    <FlatFileConnection
            Name="FF Source"
            FileFormat="FFF Source"
            FilePath="F:\test.csv"
            CreateInProject="false" />
</Connections>
<FileFormats>
    <FlatFileFormat
            Name="FFF Source"
            CodePage="1252"
            RowDelimiter="CRLF"
            ColumnNamesInFirstDataRow="true"
            IsUnicode="false"
            FlatFileType="Delimited"
            TextQualifer="_x0022_"
            HeaderRowsToSkip="0">
        <Columns>               
            <Column Name="Column1" Length="50" InputLength="50" MaximumWidth="50" DataType="AnsiString"  ColumnType="Delimited"  CodePage="1252" Delimiter="," TextQualified="true" />
            <Column Name="Column2" Precision="10" Scale="2"  DataType="Decimal"  ColumnType="Delimited"  CodePage="1252" Delimiter="CRLF" TextQualified="true"  />
        </Columns>
    </FlatFileFormat>
</FileFormats>  
<Packages>      
    <Package ConstraintMode="Linear" Name="NumericParsingFromFlatFileInsertIdentity">
        <Tasks> 
            <ExecuteSQL Name="Create table sometablename" ConnectionName="CM_OLE">
                 <DirectInput>
                      CREATE TABLE sometablename(column1 varchar(50) NOT NULL, column2 varchar(10,2) NOT NULL);
                      GO 
                 </DirectInput>
            </ExecuteSQL>
            <Dataflow Name="DFT Source">
                <Transformations>
                    <FlatFileSource ConnectionName="FF Source" Name="FF Source" />
                    <OleDbDestination ConnectionName="CM_OLE" Name="OLEDB DST">
                        <ExternalTableOutput Table="sometablename"></ExternalTableOutput>
                    </OleDbDestination>                     
                </Transformations>
            </Dataflow>         
        </Tasks>
    </Package>
</Packages>

当我尝试生成包时它说cannot execute query select * from sometablename invalid object name。我明白那个表sometablename不存在,因此会抛出错误。那么,如何自动创建表格呢?我已读过该系列BI思想和理论。第 2 部分展示了创建表的方法。我的理解是,最后它还会创建 ExecuteSQl 来创建表。我很困惑如何在数据流之前运行表创建脚本,或者 BIML 提供什么其他替代方案?

提前致谢


BIML 似乎无法实现您想要做的事情。

SSIS 数据流要求所有外部列元数据都可用 设计时间。没有办法解决这个问题,所以 Biml 编译器是 需要查询数据源来获取这些信息,即 然后发射到包中。 BIDS/SSDT 进行此验证 在工作时不断地。 Biml 仅在构建时执行此操作。

ValidateExternalMetadata=false的目的其实是为了让SSIS 避免检查中定义的外部列 数据流元数据仍然与外部数据源匹配 包运行时的验证阶段。但在设计/构建时,我们 仍然需要该元数据存在,以便我们可以创建外部 首先是列元数据。需要明确的是,这对于 原生 BIDS/SSDT 和 Biml。

ValidateExternalMetadata 由 SSIS 团队针对场景提供 例如动态创建将匹配的表或文件 预定的模式。通常您会预先构建架构 您的开发环境(您构建的环境)然后动态地 根据需要在生产中创建相同的模式。禁用 验证意味着您可以将动态创建作为 从动态创建的包中读取或加载到其中的包相同 对象。

我们确实认识到需要在没有 模式在 Dev 中也得到了体现。我们正在关注的事情之一 在未来的版本中要做的是“离线元数据”功能 允许您使用 Biml 来声明您的数据流元数据,而无需 在构建时检索它。将会有一些脚本工作 用户负责构建元数据以匹配其外观 就像在运行时一样,但如果他们做对了,像你这样的场景 将被启用。

你可以做的就是添加ValidateExternalMetadata="false"到您的 OLE DB 目标。在您的开发环境中手动创建表,然后生成包。

它应该在任何其他环境中执行都不会出现问题,因为您将 ValidateExternalMetadata 设置为 false。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 BIML 中的数据流之前创建表 的相关文章

  • 查找 SSIS 包上次修改/部署日期 - SQL Server

    我想通过执行 SQL 查询找到 SSIS 包的最后修改日期 例如 下面的查询按降序返回过程的最后修改日期 我期待对 SSIS 包进行同样类型的查询 可以从DB获取这些信息吗 select name create date modify da
  • 在 CASE 语句中使用 CAST 时出现数据转换错误

    运行以下命令时出现错误 将数据类型 nvarchar 转换为 float 时出错 declare completeCommand nvarchar max x paramVal nvarchar 100 paramName nvarchar
  • 如何判断谁登录了 SQL Server

    我正在设计一个应用程序 我正在寻找最好的方法来告诉谁当前登录到 SQL Server 我将使用 SSMS 内置的活动监视器 它显示访问服务器的所有进程的列表 非常酷 但是 如果在我的 NET 代码中 每次访问数据库时它都使用单独的连接 那么
  • 是否可以让 SQL Server 将排序规则转换为 UTF-8 / UTF-16

    在我正在处理的一个项目中 我的数据存储在 SQL Server 中 并具有排序规则Danish Norwegian CI AS 数据通过 FreeTDS 和 ODBC 输出到将数据作为 UTF 8 处理的 python 一些字符 如 和 编
  • 如何使用xampp连接sql服务器和php?

    我正在尝试使用 Xampp 将我的 SQL 服务器与 PHP 连接 我已经在ext文件夹中上传了dll文件 但无法连接它 我的PHP版本是7 2 6 上传的dll文件是 php pdo sqlsrv 72 ts dll php sqlsrv
  • CSV 数据中的逗号

    我有一个 CSV 文件 我将其直接导入到 SQL Server 表中 在 CSV 文件中 每一列都用逗号分隔 但我的问题是我有一个 地址 列 并且该列中的数据包含逗号 所以发生的情况是 地址列的一些数据将转到其他列 并将导入到 SQL Se
  • 触发器和行版本控制信息

    在什么情况下表触发器会导致在行末尾添加 14 个字节以进行行版本控制 数据行中使用的空间 部分在本页 http msdn microsoft com en us library ms175492 aspx明确指出 每个数据库行可以在行末尾使
  • 无法通过 PyODBC 连接创建数据库

    我在用pyodbc in python 2 7 with MS SQL Server 2008R 这是我创建数据库的代码 SQL代码单独在SQL中工作正常 但在python中执行时崩溃 SQL command IF EXISTS SELEC
  • 使用 MSSQL 中的附加 max() 条件从数据库中检索每组中的最后一条记录

    这是一个后续问题从数据库中检索每组中的最后一条记录 SQL Server 2005 2008 https stackoverflow com questions 4751913 retrieving last record in each
  • 没有列名列表的tsql标识插入

    我要将一些数据从一个数据库转储到另一个数据库 我在用 set identity insert MyTable on GO INSERT INTO MyTable SELECT FROM sourceDB dbo MyTable GO set
  • 如何用NULL替换空格

    我在 sql server 2012 中有一个包含空格的列 我想用 NULL 替换这些空白 我已经编写了以下查询 但它不起作用 SELECT replace COLUMN1 NULL FROM Orders 如何实现上述功能 提前致谢 Us
  • 模拟 SQL Server 实例上的当前日期?

    是否可以更改 SQL Server 上特定数据库的日期时间 它与操作系统的日期 时间相关吗 我们希望模拟未来的日期时间以进行测试 即GETDATE 返回未来的日期 它必须处于半生产 暂存 环境中 因此不幸的是 我们无法选择更改操作系统日期
  • 自动打开命名管道和 tcp\ip

    我正在安装一个需要修改 SQL Server 的新产品 具体来说 启用 tcp ip 并打开命名管道 我知道如何手动完成 我想要的是一种通过 SQL 或 C 代码为新客户自动化执行此操作的方法 我希望有任何关于正确方向的建议 您可以使用 C
  • 如何查找 SQL Server 数据库中所有空间的使用情况

    我们有一个 SQL Server 数据库 根据 Microsoft SQL Server Management Studio 的数据 该数据库只有 6436Mb 中的 119Mb 可用 然而命令 EXEC sp msforeachtable
  • MySQL CREATE TABLE 语句上的外键错误(错误:150)

    我觉得我已经在一对非常简单的创建表语句上尝试了一切可能的方法 类型匹配 我尝试使用 ENGINE InnoDB 等 但很困惑为什么我收到外键错误 我已经离开 SQL 一段时间了 所以这可能是一个简单的问题 mysql gt CREATE T
  • .Net 将 NULL 值从变量值插入 SQL Server 数据库

    也有类似的问题 但答案不是我想要的 如果引用为 NULL 或尚未分配值 我想将 NULL 值插入 SQL Server 数据库 目前我正在测试 null 它看起来像 String testString null if testString
  • 触发器以捕获服务器中的架构更改

    是否可以实现类似以下触发器的东西 CREATE TRIGGER tr AU ddl All Server ON DATABASE WITH EXECUTE AS self FOR DDL DATABASE LEVEL EVENTS AS D
  • SQL Server 全文搜索 - 是否可以在单词中间进行搜索?

    我的数据库有全文搜索 是否可以在单词中间搜索某些文本 例如 我有一个描述列 其中包含以下文本 Revolution 是否可以搜索 EVO 并让它在 革命 一词中找到它 或者我是否一直在做 LIKE SELECT FROM Table WHE
  • 选择表中的人员并排除妻子,但合并他们的名字

    我有一张桌子Person PersonID FirstName LastName 1 John Doe 2 Jane Doe 3 NoSpouse Morales 4 Jonathan Brand 5 Shiela Wife And a R
  • SSIS ForEach File 循环 - 将文件名插入表

    我正在构建一个 SSIS 包 使用 VS 2017 来从特定文件夹加载一堆 CSV 文件 使用 ForEach File 循环效果很好 数据流任务具有平面文件源和 OLE DB 目标 我希望能够将文件名以及 CSV 文件中的数据保存在同一个

随机推荐

  • 如何使用log4cxx保留单个文件并覆盖同一文件中的内容?

    在我的应用程序中 多个线程将数据记录在同一个文件中 如果文件大小超过限制 那么我必须删除文件中的特定记录并将所有内容向上移动 我可以在 Log4cxx 中执行此操作吗 如果可以 请回复您的想法 谢谢 该示例将解决您的问题 log4j roo
  • Erlang 有支持 AJAX 的模块吗? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我想创建一个能够接收和发送 AJAX 消息的 Erlang 服务器 有没有提供此功能的模
  • Botmaker 解决 Qnamaker 后续问题

    对于我当前的项目 我尝试使用仅上下文的后续提示 My problem is now that some of the questions from the follow up prompts are the same 在 qna ui 中
  • 如何在处理函数的其余部分之前更新 WPF 中的 UI 元素?

    我想在用户单击按钮后立即禁用该按钮以阻止他们再次单击它 单击它时会执行许多检查 并且这些检查似乎是在 UI 更改发生之前完成的 我试图通过为按钮使用单独的线程来做到这一点 但它似乎仍然只在检查完成后更新 这是我正在使用的代码 private
  • 将子文档数组元素添加到mongoDB中的子文档数组元素

    这可能吗 我有一个集合 C 其中包含属性 A1 的数组 每个属性都有一个子属性数组 A2 如何将子文档添加到特定的 C A1 子文档 这是一个例子 db docs insert id 1 A1 A2 1 2 3 A2 4 5 6 如果您知道
  • 实体框架。删除表中的所有行

    如何使用实体框架快速删除表中的所有行 我目前正在使用 var rows from o in dataDb Table select o foreach var row in rows dataDb Table Remove row data
  • 使用 Java 8 将 ms 转换为字符串日期

    我有一个毫秒时间戳 并使用 SimpleDateFormater 对其进行格式化 如下所示 SimpleDateFormat sdfDate new SimpleDateFormat MM d yyyy h mm a return sdfD
  • 如何使用 .NET 从十六进制颜色代码获取颜色?

    如何从十六进制颜色代码中获取颜色 例如 FFDFD991 我正在读取文件并获得十六进制颜色代码 我需要创建相应的System Windows Media Color十六进制颜色代码的实例 框架中有内置方法可以做到这一点吗 我假设这是一个 A
  • MPI 和 C 结构

    我必须承认 当我看到使用 MPI 传输一个 C 结构体需要多少行代码时 我感到非常震惊 在什么情况下可以使用预定义的数据类型简单地传输结构MPI CHAR 考虑以下示例 struct particle double x double y l
  • PHP switch 语句变量范围

    在 PHP 中 switch 语句中的变量作用域是如何处理的 例如 以这个假设的例子为例 someVariable 0 switch something case 1 someVariable 1 break case 2 someVari
  • 如何在maven多模块项目中仅运行父pom.xml

    我有 Maven 多模块项目 在父级 我有一些java文件 在父 pom xml 中 在打包阶段我做了一些事情 通常 当我在父级别运行 mvn package 时 父 pom 的 package 阶段将运行 并且所有模块也将被打包 我正在寻
  • 将数据从 SAP 提取到 SQL Server

    我正在使用 SSIS 包将 SAP 数据库表中的数据提取到 SQL Server 表中 我正在使用 OLEDB 源 目标连接来实现此目的 现在的问题是 SAP 中的一个表有 500 万条记录 需要大约 2 小时才能将这些数据提取到我的 SQ
  • 使用多处理时 cv2.Boost 的 Pickle 异常

    我正在从事名为 Faciel Actions UnitsDetection 的项目 我正在使用 python2 7 和 opencv 2 4 错误 pickle PicklingError Can t pickle
  • 跨多个数据库的连接查询语法错误

    我有2个数据库 即db1 db2 我需要一个查询从这些数据库 db1 db2 中获取数据 每个数据库都有2个表 优惠 发票 在 db1 concessions gt concession 中是主键 db1 invoicing gt 优惠编号
  • 限制正则​​表达式中的字符长度

    我使用以下正则表达式 不限制任何字符长度 var test a z A Z 0 9 lt gt Works fine 在上面 当我尝试将字符长度限制为 15 时 如下所示 它会抛出错误 var test a z A Z 0 9 lt gt
  • 使用json从PHP-MySql服务器获取图像到Android

    我正在开发一个应用程序 它从 php 服务器下载图像并在图像视图中显示图像 但是当我从 php 页面接收图像时 if empty result if mysql num rows result gt 0 result mysql fetch
  • 如何根据部分文件名检查文件是否存在?

    我试图检查我的文件夹中是否存在文件 但我只有部分文件名来检查它 有没有办法检查它 例如我有以下内容 God of War 文件名实际上称为 God of War PSP USA rar file exists 函数是否有某种类似的功能 或者
  • 如何使用python OpenCV找到单通道图像中与特定值匹配的最大连通分量?

    因此 我有一个主要为 0 背景 的单通道图像 以及前景像素的一些值 如 20 21 22 非零前景像素大多与具有相同值的其他前景像素聚集在一起 然而 图像中存在一些噪点 为了消除噪音 我想使用连通分量分析 并且对于每个值 在本例中为 20
  • 纸浆 LP 最小化配制“选择一种类型”约束

    下面的代码用于运行 LP 最小化问题 其中我们有某些食物 它们的营养价值和成本 该代码当前在所呈现的状态下工作 我正在尝试添加另一种类型的约束 我将所有食物分为不同的类别 早餐 午餐 晚餐 零食 我想创建一个约束 其中Only 1早餐 午餐
  • 在 BIML 中的数据流之前创建表

    我正在使用 BIML 和 BIDSHelper 创建 SSIS 包 我正在尝试将数据从 csv 导入到 sql server 我想在数据流发生之前在目标数据库中创建表 这是我的代码