2
我们试图使用SSIS包从平面文件导入数据到我们的SQL 2005数据库。SSIS用户定义类型
我们的数据库有一个CLR用户定义类型,我们用它来保存一些相关信息,我们称之为dbo.CustomType。
在SQL创建dbo.CustomType的对象,我可以做到以下几点:
DECLARE @Decimal1 DECIMAL(18,6),
@Int1 INT,
@Decimal2 DECIMAL(18,6),
@Int2 INT,
@Decimal3 DECIMAL(18,6)
SELECT @Decimal1 = 1.5,
@Int1 = 1,
@Decimal2 = 2.5,
@Int2 = 2,
@Decimal3 = 3
SELECT
CONVERT(
dbo.CustomType,
CONVERT(VARCHAR(20), @Decimal1) + ';' +
CONVERT(VARCHAR(20), @Decimal2) + ':' +
CONVERT(VARCHAR(2), @Int1) + ';' +
CONVERT(VARCHAR(20), @Decimal3) + ':' +
CONVERT(VARCHAR(2), @Int2)
)
在SSIS我有了所有的变量represetend列的数据集,但我怎么能结合他们并将其转换为dbo.CustomType?
====
UPDATE:
使用OLE DB Command对象,而不是OLE DB目标内的INSERT语句的时候,我能够插入自定义类型。
SO:
INSERT INTO Greg
VALUES (CONVERT(dbo.CustomType, '1;1:1;1:1;'))
作品,但
INSERT INTO Greg
VALUES (Convert(dbo.Customtype, ?))
给出了一个错误
[OLE DB命令[3103]错误:SSIS错误代码DTS_E_OLEDBERROR。发生了OLE DB错误。错误代码:0x80040E21。 OLE DB记录可用。源:“Microsoft SQL Server本机客户端10.0”Hresult:0x80040E21描述:“无效的字符值转换规范”。
这似乎是想我的字符串列转换为字节流,但每当我试图在这不断变化的回字节流的高级编辑Param_0更改为字符串
理想情况下,我们希望做一个步骤,但这样做的工作。谢谢 – Greg