【问题标题】:Pentaho: Cannot import Boolean Value to table with PostgreSQL Bulk Loader?Pentaho:无法使用 PostgreSQL Bulk Loader 将布尔值导入表?
【发布时间】:2018-02-12 14:07:12
【问题描述】:

我目前正在尝试将一些数据(从 csv 文件)导入到 postgreSQL 数据库。为此,我使用 CSV 文件输入步骤将 csv 文件导入 Kettle。其次,我使用 Modified Java Script Value 步骤来更改一些值,并且我还添加了一个名为 VALID 的新列。此列应始终为真。我将 VALID 列添加到步骤窗口下半部分的字段中。我的步骤如下所示:

要将数据从kettle 导入到PostgreSQL 数据库表,我使用的是PostgreSQL Bulk Loader(因为有数百万行要导入)。此步骤如下所示:

正如您在这张图片中看到的,表列名称是有效的,流字段是有效的(来自 Javascript 值步骤)。两者都是布尔值。应该工作。但是,如果我运行转换,则会收到以下错误消息:

2018/02/12 14:52:50 - PostgreSQL Bulk Loader.0 - Caused by: 
org.postgresql.util.PSQLException: ERROR: invalid input syntax for type 
boolean: "1.0"
Wobei: COPY adac_test, line 1, column valid: "1.0"

关于如何解决此问题的任何建议?

【问题讨论】:

    标签: database postgresql csv pentaho kettle


    【解决方案1】:

    将“有效”转换为字符串。在 postgres 中,布尔值是“某种”字符串,不是真的,但 postgres 上的布尔值可以作为字符串插入:

    https://www.postgresql.org/docs/9.6/static/datatype-boolean.html

    根据此文档,这应该可以工作:

       var VALID = 't';
    

    然后在代码窗口下方选择string而不是boolean

    【讨论】:

    • 我遇到了类似的问题,在“Postgres Bulk Loader”步骤之前将布尔字段转换为字符串,可以解决“布尔类型的无效输入语法:“1.0””错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    相关资源
    最近更新 更多