【问题标题】:Value does not fall within the expected range in ssis...huh?值不在 ssis 的预期范围内……嗯?
【发布时间】:2013-12-10 00:28:35
【问题描述】:

我的工作是 SSIS,想从 PostgreSQL 数据库的函数中选择一个值。 (此 SSIS 包从 PostgreSQL 数据库中检索数据以处理到数据集市中。这里的功能只是在 PostgreSQL 数据库的表中设置状态标志。)

函数返回单个字符('Y' 或 'N')。我正在使用 SQL 任务执行它,发出语句“select edw_processing_start_process from ;”。

该语句有效,因为该标志已成功打开 PostgreSQL 数据库。但 SQL 任务返回此问题标题中的错误。 (我用谷歌搜索了那个错误,找到了很多参考资料,但似乎没有一个与这种确切情况有关......我猜它出现在很多微软工具中。)

SQL 任务的ResultSet 设置为Single row,变量设置为字符串数据类型。除此之外,我真的不知道发生了什么。

谢谢,--sw

【问题讨论】:

  • 首先尝试将返回值捕获为对象(即 ADO 记录集)而不是字符串,然后查看它是否执行正常。可能字符串的 PostgreSQL 元数据定义与字符串的 SSIS 定义不匹配。甚至可能后退一步,根本不捕获结果,只是为了验证问题出在哪里。
  • 我正在做类似的事情,它使用 PGNP 但使用 psqlodbc 作为驱动程序失败了。如果我弄明白了,我会在下面发布答案。

标签: postgresql ssis


【解决方案1】:

不确定您是否使用相同的驱动程序 (psqlodbc),但我奇迹般地发现,如果我使用“1”作为结果名称而不是返回列的名称,它就像一个魅力。

【讨论】:

  • 最佳答案!
【解决方案2】:

刚刚也遇到了这个问题,将输出外部列类型从 DT_WSTR 更改为 DT_STR 似乎已经为我解决了。不知道为什么它多年来一直与 DT_WSTR 一起工作,但现在却不管用了。

【讨论】:

    猜你喜欢
    • 2010-12-02
    • 2011-08-09
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多