在 SSIS 中使用正确的函数拆分列中的值

2024-01-12

我需要你们的紧急帮助,我有一列代表用户的全名,现在我想将其分为名字和姓氏。

全名的格式为“World, hello”,现在这里的名字是 hello,姓氏是 world。

我正在使用派生列(SSIS),并对名字使用右函数,对姓氏使用子字符串函数,但这些结果似乎是空白的,甚至我也是空白的。 :)


它对我有用。一般来说,您应该在此类问题中提供更多详细信息,以帮助其他人重现您的问题并对其进行故障排除。您没有指定我们是否需要解决该字段中的 NULL,我也不知道您想要如何解释它,因此这个答案还有改进的空间。

我从一个简单的 OLE DB 源开始,并对“SELECT 'World, Hello' AS Name”的查询进行了硬编码。

我创建了 2 个派生列任务。第一个向数据流添加一个名为 FirstCommaPosition 的列。我使用的公式是FINDSTRING(Name,",", 1)如果 NAME 可为空,那么我们需要在调用 FINDSTRING 函数之前测试是否为空。然后,您需要确定在 NULL 的情况下如何存储拆分数据。我认为第一个和最后一个都应该为 NULL,但我不这样做know that.

分步骤执行此操作有两个原因。首先是性能。尽管听起来违反直觉,但在派生列中执行更少的操作会带来更好的性能,因为 SSIS 引擎可以更好地并行化操作。另一个更简单 - 我需要使用这个值来分割名字和姓氏,这样引用列比复制粘贴公式更容易,维护更少。

第二个派生列将实际执行拆分。

我的 FirstNameUnicode 列使用此公式(FirstCommaPosition > 0) ? RTRIM(LTRIM(RIGHT(Name,FirstCommaPosition))) : ""这表示“如果我们在上一步中找到了逗号,则切掉从逗号位置到字符串末尾的所有内容并应用修剪操作。如果我们没有找到逗号,则仅返回一个空白字符串。默认值表达式的字符串类型将是 Unicode (DT_WSTR),因此如果这不是您的需要,您将需要将结果转换为正确的字符串代码页 (DT_STR)

我的 LastNameUnicode 列使用此公式(FirstCommaPosition > 0) ? SUBSTRING(Name,1,FirstCommaPosition -1) : ""与上面的逻辑类似,只是现在我使用 SUBSTRING 操作而不是 RIGHT。 2012 版 SSIS 及更高版本的用户很高兴您可以使用 LEFT 函数而不是 SUBSTRING。另请注意,您需要后退 1 个位置才能删除逗号。

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

在 SSIS 中使用正确的函数拆分列中的值 的相关文章

  • SSIS将字符串变量保存到文本文件

    看起来应该很简单 但到目前为止我还没有找到一种方法将存储在 SSIS 字符串变量中的值保存到文本文件中 我研究过在数据流内部使用平面文件目标 但这需要数据流源 关于如何做到这一点有什么想法吗 使用脚本任务 我刚刚尝试过这个 我创建了一个文件
  • SSIS - 删除行

    我是 SSIS 新手 需要这方面的帮助 我找到了一个article http consultingblogs emc com jamiethomson archive 2006 09 12 SSIS 3A00 Checking if a r
  • 查询 ssisdb 以查找包的名称

    我正在查询 ssis 目录以找出目录中所有包的名称 Folder1项目中只有6个包 但查询却给出了9条记录 1 SELECT P NAME FROM SSISDB internal projects PRJ INNER JOIN SSISD
  • SSIS ForEach File 循环 - 将文件名插入表

    我正在构建一个 SSIS 包 使用 VS 2017 来从特定文件夹加载一堆 CSV 文件 使用 ForEach File 循环效果很好 数据流任务具有平面文件源和 OLE DB 目标 我希望能够将文件名以及 CSV 文件中的数据保存在同一个
  • SSIS 表达式生成器 - 如何查找字符的最后一次出现

    我的价值观是这样的 D DM 250 Insert Jobs QA UAT 14 FILE A UpdateInsert dts D DM 250 Insert Jobs QA UAT Something DaisyChain 14 stu
  • 如何修复 SSIS“文件/进程不在路径中”警告?

    SSIS 附带了许多解决数据获取和集成问题的任务 但它缺少的一项任务是用于通过 HTTP 下载文件的 HTTP 任务 为了解决这个问题 我安装了Wget http gnuwin32 sourceforge net packages wget
  • 当没有文件可供下载时,如何避免 SSIS FTP 任务失败?

    我正在使用 SQL Server 2005 并在 SSIS 中创建 ftp 任务 有时会有文件需要通过 ftp 传输 有时则不会 如果没有文件 我不希望任务或包失败 我已将从 ftp 任务到下一个任务的箭头更改为 完成 以便包运行 我已将允
  • 如何编写SSIS switch/case 表达式?

    这是一个 SQL Server Integration Services SSIS 表达式问题 我对此还很陌生 我想在派生列转换中编写一个 switch case 表达式 基本上 新列可以根据输入列的值有 5 个不同的可能值 我从谷歌得到的
  • 无法与重定向器建立连接。确保“sql browser”服务正在运行

    所以我尝试这个 sql server 2012 由于这个错误我无法打开任何 ssis 包 无法与重定向器建立连接 确保 sql browser 服务正在运行 我的 Sql 浏览器肯定正在运行 我尝试在本地服务 本地系统和网络下更改它 仍然没
  • Talend 和 Apache Spark?

    我对 Talend 和 Apache Spark 在大数据生态系统中的定位感到困惑 因为 Apache Spark 和 Talend 都可以用于 ETL 有人可以用一个例子解释一下吗 Talend 是一种基于工具的大数据方法 通过内置组件支
  • 脚本任务无法在 Visual Studio 2013 中打开编辑器

    我正在使用 SSIS 2014 和 Visual Studio 2013 当我单击脚本任务的 编辑脚本 按钮时 没有错误 没有任何反应 但脚本编辑器没有打开 我在我的机器上安装后什么也没发生 Microsoft Visual Studio
  • 从变量使用 OLE DB 源命令的 EzAPI 等效项是什么?

    tl dr 使用 来自变量的 SQL 命令 数据访问模式的 OLE DB 源并分配变量的 EzAPI 代码是什么 Preamble 每月一次 我们需要使用生产数据的子集刷新我们的公共测试站点 我们已确定 根据我们的需求 SSIS 解决方案最
  • 如何跳过 SSIS 数据流中的最后一行

    我在用FlatFile Source Manager gt Script COmponent as Trans gt OLEDB destination在我的数据流中 源从平面文件读取所有行 我想跳过更新数据库的最后一行 预告片记录 由于它
  • SSIS Master 包执行来自另一个项目的包

    我有多个SSIS项目 但其中的一些包是相同的 我想创建一个包含所有内容的项目generic包并将其他项目与他们的特定包一起保存 所以我的问题是 是否有可能有一个主包可以执行并将父变量传递给另一个项目的包 我是 SSIS 新手 如果这是一个明
  • 覆盖SSIS环境变量

    我已经设置了一个包配置 其中配置类型为 间接 XML 配置文件 环境变量指向的位置C SSIS MasterConfig MasterConfig dtsConfig file 这非常有效 并且可以轻松地从测试迁移到 UAT 再到生产 问题
  • SSIS-从 Sharepoint 下载 Excel 并将其加载到 SQL 数据库

    我目前遇到的情况是共享点网站上有一个 Excel 文件 我需要将该 Excel 文件加载到数据库中 Excel 文件有多个工作表 我尝试过以下方法 但运气为零 方法 1 我访问 sharepoint 站点并访问 库 选项卡 并选择使用资源管
  • SSIS Excel 导入强制错误的列类型

    我正在尝试使用 SSIS 将电子表格导入到我们的数据库中 由于某种原因 当其中两列包含字符数据时 SSIS 希望相信它们的类型为 Double 我尝试将列重新映射为 nvarchar 255 但它仍然不想选择它认为是双精度的数据 因为其中有
  • ssis 输出 json 文件添加额外的 crlf

    这个问题已经用c 代码解决了 请参考这篇文章the post https stackoverflow com questions 54059599 ssis generate json file remove return 54084996
  • SSIS 2008 和 Undouble

    我将 SSIS 与 SQL Server 2008 R2 一起使用 我正在导入大型文本文件 大约 0 5 GB 这些文件使用双引号作为文本限定符 使用逗号作为字段分隔符 许多文件都具有文本限定字段 并在终止双引号之间包含逗号 SSIS 应该
  • SQL Server 2014 安装中缺少 SQL Server Integration Services

    我正在尝试使用 Integration Services 安装 SQL Server 2014 Here https www microsoft com en US download details aspx id 42299是我以前用工具

随机推荐