当前位置: 首页 > news >正文

[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

相关文章:

  • C# MVC +Layui侧边导航栏的收缩及展开
  • VUE——IDEA 启动前端工程VS文件启动前端工程
  • 【操作系统】虚拟存储器
  • 相比于其他流处理技术,Flink的优点在哪?
  • N 皇后 II[困难]
  • 你好!Apache Seata
  • Android--Jetpack--Paging详解
  • C#-CSC编译环境搭建
  • 千巡翼X4轻型无人机 赋能智慧矿山
  • 【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(4)-自制数据集及训练(使用makesense标注数据集)
  • uni-app 前后端调用实例 基于Springboot 数据列表显示实现
  • Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取相机当前实时帧率(C#)
  • Vue.js和Node.js的关系--类比Java系列
  • Mybatis行为配置之Ⅰ—缓存
  • 【北亚数据恢复】mysql表被truncate,表数据被delete的数据恢复案例
  • 网络传输文件的问题
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • android 一些 utils
  • ES6核心特性
  • FastReport在线报表设计器工作原理
  • input的行数自动增减
  • javascript 总结(常用工具类的封装)
  • passportjs 源码分析
  • vue2.0项目引入element-ui
  • 第十八天-企业应用架构模式-基本模式
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 使用Swoole加速Laravel(正式环境中)
  • 我的zsh配置, 2019最新方案
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 一些关于Rust在2019年的思考
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • (ibm)Java 语言的 XPath API
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (LeetCode) T14. Longest Common Prefix
  • (二)PySpark3:SparkSQL编程
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (三分钟)速览传统边缘检测算子
  • (十)c52学习之旅-定时器实验
  • (一)u-boot-nand.bin的下载
  • (一一四)第九章编程练习
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .project文件
  • .so文件(linux系统)
  • @PreAuthorize注解
  • @Repository 注解
  • @RequestBody的使用
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [@Controller]4 详解@ModelAttribute
  • []error LNK2001: unresolved external symbol _m
  • [bzoj4010][HNOI2015]菜肴制作_贪心_拓扑排序
  • [C++]AVL树怎么转