【问题标题】:MS SSIS : Data Type conflict for variables (String vs Object) working with Access MEMO typeMS SSIS:使用 Access MEMO 类型的变量(字符串与对象)的数据类型冲突
【发布时间】:2018-08-16 18:52:53
【问题描述】:

我制作这个包是为了让我的 sql 任务更加动态: 第1步。我选择 SQLtext 从我的 AccessTable 运行并存储在 SQLStr var 中。

步骤 2。我从 Step1 运行存储在 var SQLStr 中的 Select 语句。 但是,只有当我使用 DataType = Object 时我才能运行 Step1,并且只有在我使用 DataType = String 时我才能运行 Step2,我玩过它并验证了这 100 美元。 我该如何解决这个问题,我可以做一些转换吗?数据类型,我的查询存储在 Access DB type = Memo 中,因为它很长,并且可能有换行符。 有什么诀窍??详情请参考下图。

** 请注意,此问题仅出现在 Access Memo Type 字段中!!!!!!** 在其他设置中,它应该在 Step1 中使用字符串类型 OK

【问题讨论】:

    标签: ms-access ssis


    【解决方案1】:

    在您的第一个查询中,当您选择 SQLText 时,将其转换为字符串(在 select 语句中),以便您可以将其存储在字符串变量中。

    如果无法将 memo 字段转换为 SELECT 中的字符串(我不熟悉 Access),那么您可以遍历 foreach loop 中的对象变量并存储 @987654324 的值@ 字符串变量中的列,然后使用它继续执行步骤 2。

    如果这些都不起作用,作为蛮力方法,您可以按照this thread 中的解决方案将 Access 表导入使用 nvarchar(max) 字段的 SQL Server 上的暂存表,您应该能够选择成字符串变量没有问题。

    【讨论】:

    • 再次发送,很抱歉它在 TSQL 中工作,但它不适用于 Access,我做了更多测试并将其缩小 100%。 Access Memo -> 到字符串转换应该有一些特别之处,CStr 不适用于 SSIS,它仍然只需要对象。我正在研究如何解决这个问题。
    • 刚刚和 MS 大师谈过,Access db 中的 Memo 字段已知问题,而不是在 SSIS 中讨论它的转换,如果 psssble 建议使用 Text 类型,或者使用 TSL 表。在我的情况下 SQL 命令 = 2000b,所以我会做其他事情
    • 那么第三段中的蛮力方法应该根据链接的文章起作用。
    • 是的,再次感谢 Tab!我只有几个 SQLText 条目,所以很容易在 TSQL 中创建它,没问题,至少现在我可以睡个好觉了!!
    猜你喜欢
    • 1970-01-01
    • 2021-01-28
    • 2020-01-07
    • 2018-02-02
    • 2013-11-02
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多