首页 > 其他分享 >DataX 常见问题及解决方式

DataX 常见问题及解决方式

时间:2024-07-30 17:07:31浏览次数:15  
标签:u0000 常见问题 String sequence 0x00 preparedStatement DataX 解决 columnSqltype

1. 同步到 PG 出现 invalid byte sequence for encoding "UTF8": 0x00

“invalid byte sequence for encoding "UTF8": 0x00”(注意:若不是 0x00 则很可能是字符集设置有误),是 PostgreSQL 独有的错误信息,直接原因是 varchar 型的字段或变量不接受含有 '\0'(也即数值 0x00UTF 编码 '\u0000')的字符串 。官方给出的解决方法:事先去掉字符串中的 '\0',例如在 Java 代码中使用 str.replaceAll('\u0000', ''),貌似这是目前唯一可行的方法。
具体方法:

// com.alibaba.datax.plugin.writer.postgresqlwriter.PostgresqlWriter.Task#commonRdbmsWriterSlave

this.commonRdbmsWriterSlave = new CommonRdbmsWriter.Task(DATABASE_TYPE){
    @Override
    public String calcValueHolder(String columnType){
        ...
    }

    @Override
    protected PreparedStatement fillPreparedStatementColumnType(PreparedStatement preparedStatement, int columnIndex, int columnSqltype, String typeName, Column column) throws SQLException {

        if (columnSqltype == Types.CHAR || columnSqltype == Types.VARCHAR) {
            preparedStatement.setString(columnIndex + 1, column.asString().replaceAll("\u0000", ""));
            return preparedStatement;
        }

        return super.fillPreparedStatementColumnType(preparedStatement, columnIndex, columnSqltype, typeName, column);
    }
};

参考:"从Microsoft SQL Server同步数据到AnalyticDB for PostgreSQL提示org.postgresql.util.PSQLException ERROR invalid byte sequence for encoding ""UTF8"" 0x00"-阿里云帮助中心_-阿里云帮助中心

标签:u0000,常见问题,String,sequence,0x00,preparedStatement,DataX,解决,columnSqltype
From: https://www.cnblogs.com/kingron/p/18332913

相关文章

  • 我正在尝试通过编辑 github 上的代码来解决我下载的验证码图像
    importkerasimportpandasaspdimportnumpyasnpimportcv2importglobimportimutilsfromimutilsimportpathsimportosimportos.pathimportsysimporttensorflowprint(os.getcwd())os.environ['TF_ENABLE_ONEDNN_OPTS']='0'cap......
  • 阿里云设置跨域规则后调用OSS时仍然报No'Access-Control-Allow-Origin'的错误原因和解
    问题描述为了实现跨域访问,保证跨域数据传输的安全进行,在OSS控制台设置了跨域CORS规则后,通过SDK进行程序调用时报以下错误。No'Access-Control-Allow-Origin'headerispresentontherequestedresource问题原因出现跨域问题的原因如下:跨域CORS规则设置异常:未正确设......
  • java编译错误,找不到包的解决办法
    异常:D:\AC2024\20240729\delphiJIN_JAVA\JavaTest\bin\x64>javaMYclasses.JavaClassForDelphiTestExceptioninthread"main"java.lang.NoClassDefFoundError:com/sltas/front/third/util/CryptionUtilatMYclasses.JavaClassForDelphiTest.main(Jav......
  • 解决国内 github.com 打不开的最最最准确方法
    我们编程的有时候打不开github.com,很运费,我有一个方法,试了,可以。如果有谁也打不开也可以试试。1、打开网站https://tool.chinaz.com/dns/,在A类型填写github.com,点击按钮【立即检测】。2、下拉,看到如下界面。3、随便复制一个IP地址,打开C:\Windows\System32\drivers\etc......
  • 守护数字世界:网络准入控制与终端安全管控解决方案
    网络准入控制与终端安全管控解决方案在当今这个数字化时代,网络安全已成为企业运营和社会发展的基石。随着网络攻击手段的不断演进,如何确保网络环境的安全性、稳定性和高效性,成为了每一个组织必须面对的重要课题。上海安秉信息技术有限公司,作为信息安全领域的佼佼者,凭借其先进......
  • SX12系列&ASR6601基于LoRa的智慧农业解决方案
    我国《数字乡村发展战略纲要》明确指出“要推进农业数字化转型”,加快推广云计算、大数据、物联网、人工智能在农业生产经营管理中的运用。然而,目前我国的农业数字化转型还面临着诸多挑战。我国整体农业机械化程度和自动化控制水平仍然较低。由于农田面积广袤,大量的区域没有信号覆......
  • 关于VMware workstation添加本地物理磁盘时候提示“未能为设备XX加载分区,权限不足,无法
    前言:玩虚拟机这么久了,原先一直是直接初始化虚拟机的时候按照流程新建虚拟机硬盘,但是正常情况下虚拟机硬盘与物理机硬盘是隔离开的,无法直接相互访问正常情况下是安装vmtools来进行相互间文件传输,或者将物理磁盘上的文件拷贝到U盘,当插上U盘的时候选择连接到对应的虚拟机即可实现......
  • [已解决] Rstudio出现炸弹 R Session Aborted
    因为打开了一个过大文件,导致Rstudio环境损坏。查到可以通过替换.history可解决,尝试后无果。重装因为第一次重装没有删除干净,导致重装后再次打开还是同样出现新的问题。卸载再次重装Rstudio在系统中的变量路径全部删除彻底清除Rstudio痕迹,删除隐藏文件夹并在R中运......
  • 如何解决部分设备分辨率不适配
    1)如何解决部分设备分辨率不适配2)Unity中如何实现草的LOD3)使用了PlayAssetDelivery提交版本被Google报错4)如何计算弧线弹道的落地位置这是第396篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。UWA社区主页:co......
  • 解决 centos7 重启 ip 失效问题
    解决centos7重启ip失效问题(1)输入以下命令打开配置文件vi/etc/sysconfig/network-scripts/ifcfg-ens33(2)按i修改ifcfg-ens33配置文件内容,然后esc,输入:wq保存文件#动态分配BOOTPROTO=“dhcp”#开启网卡ONBOOT=“yes”(3)重启网卡servicenetworkrest......