【发布时间】:2009-06-17 20:48:01
【问题描述】:
我正在开发一个 SSIS 包。我正在尝试将数据从 SQL Server 2005 写入 MS Access 2007。
我很困惑如何将 SQL char(1) 字段转换为 Access Yes/No 字段。
根据我收集的信息,Access Yes/No 字段的 SQL 等效项将是一个位字段,其值为 0 或 1。
我的 SQL char(1) 字段(这是我的源字段),包含“N”或“Y”。我没有使用位字段的选项,因此我进退两难。我尝试过转换为布尔值和整数,但没有成功。
在我的数据流任务中,我尝试创建正则表达式无济于事,派生列、数据转换等也无济于事。我被卡住了。
我已经看到了一些关于构建循环遍历 .Row 集合的条件语句的示例。这似乎有点过分,必须为 NULL 检查或字符串值编写条件。
在 MSDN 链接 SSIS Equivalent to DTS Transform Data Task Properties ...它有一些类似于此的代码:
If DTSSource("Col010") = "Y" Then
DTSDestination("X") = -1
Else
DTSDestination("X") = 0
End If
我应该能够通过代码直接操作行值吗?由于源字段是 Yes/No 类型,它是否接受整数值?负值?是的实际上是 MS 访问中的“-1”,我想这让我感到困惑。
似乎正则表达式可以解决这个问题,但我也不确定如何使用它。
有什么我忽略的吗?必须有一种方法可以将“CHAR”转换为“YES/NO”。
** 我知道在这里很容易指出,好的 ol' 2000 SQL DTS 可以毫无问题地处理这个问题,默认情况下,开箱即用,由猴子安装。我发现自己在 SSIS 的非常小的怪癖上花费了太多时间,例如这个是/否字段问题。
我找不到关于 SSIS 和 MS Access Yes/No 字段的任何文档。 MSDN 也不允许我发布问题。我知道,可怜的我:(
有没有人在使用 SSIS 和 MS Access 时遇到过这种怪癖?
【问题讨论】:
-
Access 没有字段,因为它不是数据库。另一方面,Jet 是一个数据库,它确实有字段和自己的数据类型。
-
感谢您提供开创性的高科技建议。给自己买一个芝士汉堡给我。
标签: ssis char ms-access-2007