问题标签 [ssis-data-types]

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

oracle - Oracle 查询作为 SSIS 中的源定义了错误的数据类型

我有一个有点复杂的查询,我想将它用作 SSIS 包中的源。我创建了我的 OLE DB 源,将访问模式指定为 SQL,并将我的查询粘贴到命令文本框中。当我单击“预览”时,样本数据又回来了,一切看起来都很好。

但是,当我尝试运行该程序包时,我得到了“外部列与数据源列不同步”和“需要从外部列中删除外部列'xxx'”的错误消息。请注意,在设计模式下,错误列表选项卡中没有条目。

在进行研究时,我发现外部、输出和错误列被自动定义为错误的数据类型。一些明显的整数列被定义为字符串,而另一些则被设置为 unicode 字符串。

我试图通过高级编辑器手动修复它们,但您似乎无法更改错误列。但是,如果我修复了外部和输出源列,我会收到关于不同步的消息……你想修复它吗?我点击是,它把它放回字符串......

感谢您的任何见解。

0 投票
1 回答
650 浏览

excel - 在 SSIS 包中强制执行数据类型

我有一个从 excel 文件导入数据的 SSIS 包。其中一列主要有数字(如 12345),但有些也有字母(如 123A5)

当我配置包时,我无法更改格式并且它总是被识别为双精度(可能它只查看第一行)。

如何强制执行我自己的数据类型,以便将列读取为字符串?

我也尝试在 Visual Studio 中修改包并在数据转换步骤中添加列,但它仍然无法正常工作。

0 投票
2 回答
4944 浏览

sql - 在 SSIS 中转换数据类型

我得到一个输入 CSV 文件,我必须将其上传到我的 oracle 数据库。

这是一些示例数据

我必须将传入的列转换为 DB_TIMESTAMP(以匹配目标表中的结构)。

但是当我使用Data Conversion转换时,我得到一个错误

Data conversion failed while converting column "Date" (126) to column "Date" (496). The conversion returned status value 2 and status text "The value could not be converted because of a potential loss of data.

我应该怎么做才能正确转换这些数据?

0 投票
3 回答
11145 浏览

types - 在 SSIS 中使用什么变量类型来表示金钱

我需要使用“执行 SQL 任务”组件在 SSIS 中的变量中加载 Money 值。我将 SELECT 的返回列映射到一个变量。我已将变量“UnknownMoney”声明为 Double 或 Single,但我总是收到错误消息:

SSIS 中的 Money 列类型是 DT_CY(货币),但此类型不适用于变量。

什么是金钱的正确类型?

编辑:VS2012中的变量类型下拉列表框:

变量类型列表框 2 变量类型列表框 1

0 投票
1 回答
3694 浏览

ssis - SSIS 无法确定列的正确数据类型

我有一个简单的 SSIS 包,它从 Oracle 数据库中选择数据并将数据插入到 sql server。在 DataFlow 中,我有 3 个任务:

  1. 我有一个运行非常简单查询的 OLE DB 源。从表中选择 Col1、Col2、Col3、Col4、Col5、Col6、Col7。
  2. 然后我有一个数据转换任务,将 col6 和 col7 从 unicode STRING[DT_WSTR] 转换为 STRING[DT_STR]。
  3. OLE DB 目标(sql 服务器)。

错误:SSIS 将 OLE DB 源任务变为红色并显示以下错误:

输出“OLE DB 源输出”(11) 上的输出列“Col3”(23) 出现错误。返回的列状态为:“文本被截断或一个或多个字符在目标代码页中不匹配。”。

“输出列“Col3”(23)”由于发生截断而失败,并且“输出列“OS_VISIT_ID”(23)”上的截断行配置指定了截断失败。指定组件的指定对象发生截断错误。

但是 Col3 不是文本,而是数字,SSIS 将其检测为 unicode STRING[DT_WSTR]。我什至尝试在数据转换任务中将 Col3 转换为数字,然后再转到 OLE DB 目标。但我仍然得到同样的错误。

0 投票
3 回答
10710 浏览

ssis - SSIS 2008:派生列将字符串转换为日期数据类型

我昨天有这个 SSIS 包工作,现在我得到了这个错误,一夜之间没有任何变化。

基本上我得到一个字符串,看起来像:yyyymmdd,我需要将它转换为日期数据类型。因此,我采用子字​​符串来获取 yyyy/mm/dd 然后将其转换为日期类型。

路径:

平面文件源 ---> 衍生列 ---> 我所有的 SSIS 包集成/插入任务

以下是表达式:

这是错误:

错误:0xC0049064 将 EXD 数据从平面文件提取到 YD db 1,派生列 [3352]:尝试执行类型转换时出错。

错误:0xC0209029 从平面文件中提取 EXD 数据到 YD db 1,派生列 [3352]:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。“组件”派生列“(3352)”失败,因为发生错误代码0xC0049064,并且“输入列“PolicyExpire”(3368)上的错误行处置指定错误失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

错误:0xC0047022 从平面文件中提取 EXD 数据到 YD db 1,SSIS.Pipeline:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。在处理输入“派生列输入”(3353) 时,组件“派生列”(3352) 上的 ProcessInput 方法失败,错误代码为 0xC0209029。已识别的组件从 ProcessInput 方法返回错误。该错误是特定于组件的,但该错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

0 投票
1 回答
712 浏览

ssis - 如何实现相似的数据类型

目标:
将同一个表 A 中名为 first 和 lastname 的两列合并,然后从另一个关系数据库将其传输到表 B 中的列 fullname。

列 first 和 lastname 具有与 fullname 相同的数据类型。数据类型是 varchar(50) 或 varchar(100)。

问题:
我不能使事务具有相同的数据类型

在此处输入图像描述

0 投票
1 回答
276 浏览

ssis - 数据类型转换成 SSIS?

我从平面文件创建了一个 SSIS 包,我得到了一个价格值。

但是在派生表中,我将值转换(DT_DECIMAL)为我需要将其插入数据库的值。

我的问题是价值12345.6754。我只想取小数点后 2 位,即我想要12345.67.

为此,我也尝试过(DT_DECIMAL,2)MYCOLUMN(DT_NUMERIC,10,2) MYCOLUMN但它也给了我12345.6754:(

请帮忙

0 投票
4 回答
4622 浏览

sql-server - SSIS 平面文件连接管理器中的顽固列数据类型不会改变。:(

我继承了一个现有的 SSIS 包,它将平面文件数据导入我的 SQL Server 2005 数据库。我需要将“总销售额”列的数据类型从“数字”更改为“货币”。当我更改数据类型并导出包时,数据类型仍然是数字。

我还尝试创建一个新的平面文件连接以在同一个包中使用,但由于某些奇怪的原因,它仍然是数字而不是“cy”货币。我想在其他一些区域有一些“卡住”的东西迫使最后一列保持数字?

有谁知道更改平面文件数据源的数据类型的技巧?

0 投票
1 回答
2040 浏览

sql-server - SSIS 导入 Excel 字符串类型以浮动 SQL Server 数据类型

我有一个 excel 文件,其中三列都是空的(从上到下),需要作为浮点数或货币导入到 sql server 表中。这些列的其他 excel 文件包含带两位小数的值。由于我无法将空白单元格导入数字列,因此我LEN(TRIM(F11)) > 1 ? (DT_R8)F11 : 0在派生列组件中使用了在 db 列中写入 0。

但是现在当我导入其他带有值的 Excel 文件时,我得到的值类似于8,4971E+20而不是849,71.

我可以改变表达来解决这个问题还是涉及其他事情?

此外,我不想将 NULL 插入到 db float/money 列中,而不是写入“0”。

希望你能帮我解决这个问题。

更新:让我尝试另一种方式:

我在那些空的 excel 列中有一个 if 表达式,如果另一张表的值不是数字,它只会在单元格内放置任何内容。

如果我可以使用“else”语句向每个单元格插入一个数值,或者可能为 NULL,我可以直接作为浮点数导入。我尝试在 else 语句中加入 ' 0 ' 或 ' NULL ' 但我想由于它们周围的引号,它们将被解释为字符串。

有什么想法吗?