[BUG]Datax写入数据到psql报不能序列化特殊字符

1.问题描述

Datax从mongodb写入数据到psql报错如下
img

org.postgresql.util.PSQLException: ERROR: invalid bytesequence for encoding "UTF8": 0x00

2.原因分析

此为psql独有的错误,不能对特殊字符’/u0000’,进行序列化,需要将此特殊字符替换掉,由于datax中不能对mongodb进行select处理,因此此处需要对源码进行处理。
由报错可知,出错的jar报为:plugin-rdbms-util-0.0.1-SNAPSHOT.jar
由报错可知,出错的class报为:com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter

3.问题解决

//1.下载datax源码,找到com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter文件
//2.修改源码com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter类中的 Task 
//找到fillPreparedStatementColumnType方法
protected List<String> alterColumns;
//  case Types.LONGNVARCHAR:
                    // preparedStatement.setString(columnIndex + 1, column
                    //         .asString());
                    // break;//替换为
case Types.LONGNVARCHAR:
String value = column.asString();
            if (Objects.nonNull(value)) {
   
               value = value.trim().replaceAll("\u0000", "");
            }
            preparedStatement.setString(columnIndex + 1, value);
            break;
//3.编译plugin-rdbms-util模块形成plugin-rdbms-util-0.0.1-SNAPSHOT.jar
//4.替换plugin-rdbms-util-0.0.1-SNAPSHOT.jar
cp plugin-rdbms-util-0.0.1-SNAPSHOT.jar /datax/plugin/writer/postgresqlwriter/libs/

4.测试是否完成

5.安装包下载

plugin-rdbms-util-0.0.1-SNAPSHOT.jar安装包下载 提取码: kwhr

相关推荐

  1. psql导入数据错排查

    2024-01-01 10:48:02       9 阅读
  2. 微信小程序 input 输入特殊字符的方法

    2024-01-01 10:48:02       13 阅读
  3. spark写入数据

    2024-01-01 10:48:02       36 阅读
  4. 批量写入数据Elasticsearch

    2024-01-01 10:48:02       34 阅读
  5. 使用Spark写入数据数据库

    2024-01-01 10:48:02       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-01 10:48:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-01 10:48:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-01 10:48:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-01 10:48:02       20 阅读

热门阅读

  1. 深入理解Vue.js 3的Reactive方法

    2024-01-01 10:48:02       40 阅读
  2. SpringBoot简单整合mybatis

    2024-01-01 10:48:02       32 阅读
  3. 基础算法--搜索与图论(1)

    2024-01-01 10:48:02       32 阅读
  4. OJ选夫婿

    2024-01-01 10:48:02       31 阅读
  5. logback中的logger和root

    2024-01-01 10:48:02       39 阅读
  6. UntiyShader(七)Debug

    2024-01-01 10:48:02       49 阅读
  7. C语言实例_生成6位数的随机密码(强迫症福音)

    2024-01-01 10:48:02       35 阅读