问题标签 [derived-column]

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 回答
330 浏览

sql-server - 如何从 SSIS 中的 DateTime 变量小时、分钟、秒和其他部分中删除

如何从 SSIS 中的 DateTime 变量小时、分钟、秒和其他部分中删除

如果我有 DateTime 之类21 jul 2019 8:30:05的,并且我希望它21 jul 2019 00:00:00仍然是 DateTime 而不是字符串

0 投票
1 回答
3585 浏览

sql-server - SSIS:将文本流 DT_TEXT 转换为 DT_WSTR

我正在 SSIS 中创建一个包,并希望将一个大列的文件转换为多列。

我有一个表,其中包含几行和一列原始数据。数据是从记事本文件中复制的,每一行都包含管道分隔符来分隔每一列,但是因为是记事本文件,所以每一行都被复制为一个大列。我想根据它们的开始/结束位置将每行的每一列转换为多列。

我尝试将 SSIS 派生列转换与SUBSTRING函数一起使用,但数据类型自动填充为text stream[DT_TEXT],并且出现以下错误:

[派生列[113]]出错;函数“SUBSTRING”不支持参数编号 1 的数据类型“DT_TEXT”。无法将参数的类型隐式转换为函数的兼容类型。要执行此操作,需要使用强制转换运算符显式强制转换操作数。

[派生列[113]]出错;评估函数“SUBSTRING”失败,错误代码为 0xC0047089。

[派生列[113]]出错;计算表达式“SUBSTRING[RawData],1,5)”失败,错误代码为 0xC00470C5。表达式可能有错误,例如除以零,在解析时无法检测到,或者可能存在内存不足错误。

[派生列[113]]出错;"Derived Column.Outputs[Derived Column Output].Coluns[Derived Column 1] 上的表达式 "SUBSTRING[RawData], 1,5)" 无效

[派生列[113]]出错;无法在“Derived Column.Outputs[Derived Column Output].Columns[Derived Column 1] 上设置属性“Expression”。

SUBSTRING当我查看使用包含单个列的文件的其他派生列转换插图时,我注意到数据类型显示为DT_WSTR.

我需要转换成这种数据类型吗?如果是这样,我如何在 SSIS 派生列转换中使用转换运算符显式转换DT_TEXT数据类型?DT_WSTR

否则,我还能如何处理这种转换?

我希望 RawData 列根据它们的开始和结束位置被拆分(转换)为 8 个不同的列。

0 投票
1 回答
926 浏览

sql-server - How to convert Datetime to Timestamp in SSIS

I'm new in SSIS. I'm importing an Excel Sheet to Transform and record in another Data Source. In the Transform process I need to convert some imported DateTime to their timestamp value

I always find Unix TimeStamp to DateTime in google search.

I'm using a derived column component.

I've tried this three expressions without any success:

I Expect the output of 1571097600 for 15/10/2019

Thanks in advance

0 投票
1 回答
103 浏览

sql-server - 处理数据流任务中派生列中的截断错误

我有一个包含派生列的数据流任务。派生列将 CSV 文件列(例如订单号 A)转换为长度为 10 的数据类型 char。

当文本文件列等于或小于 10 个字符时,这非常有效。当然,A列订单号超过10个字符时会报错。

A 列(容易出错)。

我想捕获容易出错的记录并仅提取订单号。

我已经可以配置派生列的错误输出。但是,这只是忽略错误记录并处理其他记录。

预期的输出将分别处理,ABC 56987K5239订单485P971259 SPTGER号。删除意外字符的过程并不重要,重要的是如何在派生列的运行时实现这一点(在出现错误时剥离和处理数据)。56987K5239485P971259

0 投票
1 回答
235 浏览

sql - SSIS 派生列未更新到数据库中

我有一个 SSIS 包,它从 csv 文件中获取数据,通过数据转换来转换数据类型,然后导入数据库。

我想在将列导入数据库之前从列中删除部分字符串,因此我包含了派生列转换。

我把派生列任务放在数据转换任务之前。我将派生列设置为替换我要更改的列,然后放入我的表达式以替换字符串的一部分。

然后进行数据转换,然后进行导入数据库任务。当我查询数据库时,它已将第 1 列字段中的所有数据放入第 2 列字段中,它没有将派生数据放入第 2 列字段中,因为这些字段都已正确映射。

有没有其他人遇到过这个?

0 投票
0 回答
45 浏览

sql-server - 如何将格式为 MM-DD-YYYY 的日期更改为在 SSIS 中的 MM 和 DD 中没有前导零?

我正在将平面文件加载到数据库表中,并且在 SSIS 派生列任务的事先帮助下,我能够将平面文件中的数据类型 STRING 的日期从 YYYY-MM-DD 转换为 MM/DD/YYYY数据库表。但是,我注意到它将日期转换为在日期的 MM 和 DD 部分中包含前导零,但是当月和日是单个数字时,我需要排除前导零,例如六月应该是“6”而不是“06”,日期应该是“1”而不是“01”。

因此,完整日期应该是,例如 2019 年 6 月 1 日,而不是 2019 年 6 月 1 日。

有没有办法让我在 SSIS 派生列中做到这一点?

如果没有,我如何在 SQL-Server 中对其进行编码?

这个问题与上一个问题不同。在最后一个问题中,日期列是数据类型 DateTime。但是在这个问题中,日期是一个字符串,当我使用派生列将日期从 YYYY-MM-DD 更改为 MM/DD/YYYY 时,它在 MM 和 DD 中保留了前导零。然后问题就变成了,不仅要更改日期格式,还要从月份和日期中删除前导零。

但是,我在 SSIS 中研究并提出了一个更好的解决方案,用于使用数据类型字符串更改日期值,因为我正在使用的数据库以该格式存储日期。

我从我的数据源任务中删除了派生列,并在控制流中添加了一个执行 SQL 任务,然后添加了以下更新语句,它不仅将格式从 YYYY-MM-DD 更改为 MM/DD/YYYY,而且还删除了月和日的前导零。我在下面的示例 SQL 中使用的 CONCAT 函数将格式从 YYYY-MM-DD 更改为 MM/DD/YYYY,而 Convert 函数将 MM 和 DD 值更改为删除任何前导零的数据类型 INT。此解决方案允许日期保留为字符串,因为这是我必须使用的表格格式。

感谢大家的评论,因为它帮助我跳出框框思考并确定了这个解决方案。

0 投票
1 回答
29 浏览

ssis - 将敏感数据从 SQL Server 导入到平面文件

我是 SSIS 的新手,我想将数据从 SQL 数据库导入到平面文件。我有一个名为的列名SecurityNumber,其中包含敏感数据,因此使用派生列我想使用符号 * 来隐藏一些数字。例如,如果列的值为 1983121802,并且如果子字符串 3 加上子字符串 4(在本例中为 8+3)小于 13,则将列显示为 **83******或显示整个值 ( 1983121802) 我该怎么做?并且该列SecurityNumber具有字符串数据类型,如何将其更改为另一种数据类型以便进行比较?谢谢您的帮助!

0 投票
1 回答
78 浏览

ssis - 使用 ssis 派生列表达式根据任何给定日期计算下周三

我正在创建一个包来存储报告的生成日期。根据该日期需要推导出下一个星期三的日期。

例如:报告日期是 2019 年 11 月 11 日,所以星期三应该是 2019 年 11 月 13 日。

0 投票
0 回答
96 浏览

regex - 无法使 SSIS 正则表达式(正则表达式)工作(来自 kingswaysoft 的高级派生列组件)

我正在使用 SSIS Productivity Pack,并且在正则表达式函数上遇到了 Premium 派生列组件的问题:

[我需要smth3从字符串中获取smth1, smth2, smth3.或- 输入字符串有 3 个选项smth2, smth3.], smth3

我收到错误消息

我已经尝试了所有我能想象到的选项 - 将它包含在(), "", [], 之前,但@没有任何效果。

0 投票
1 回答
135 浏览

sql-server - SSIS如何映射数百个派生列

我有一个表需要映射 104 列并从 Unicode 转换为非 Unicode 等,就像(DT_STR,10,1252)[ColumnName]在 SSIS 中的派生列编辑器中一样。

鉴于我从 SSIS 中的 CDC 控制任务中摄取,并且您没有机会在派生列任务之外进行 CAST,因此我不能简单地从 SQL 语句中进行 CAST。

鉴于我有超过 100 列要手动映射,有没有办法在 SSIS 中动态地执行此操作,而不是手动遍历每一列?