云数据库 GAUSSDB-数据导入导出:copy_special_character_version

时间:2024-11-02 18:49:47

copy_special_character_version

参数说明:控制COPY导入导出数据时对非法编码的字符处理的相关表现。

参数类型:字符串

参数单位:

取值范围:''、no_error、per_byte。

默认值:''

设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

使用gsql连接数据库,使用set方式设置时不区分大小写,使用gs_guc设置时仅能设置小写。

设置建议:

表2 兼容性配置项

兼容性配置项

兼容性行为控制

no_error

控制使用COPY导入数据文件时,当文件编码与服务端编码相同时,对数据文件中不满足编码信息的数据进行容错处理,不报错按照原编码插入表中。

per_byte

控制使用COPY导出文本格式的数据文件时,对文件编码为GBK或ZHS16GBK文件的处理方式。

设置per_byte后,在导出数据时一次导出一个字节数据,否则按照一次导出两个字节的数据(GBK编码下一个字符占两个字节)。

空值

参数默认配置,不影响任何功能使用,做前向兼容处理。即COPY存在非法编码时报错。

  • 为保证导入表中数据的合法性,COPY中需要对数据编码的合法性校验。当开启此参数后会屏蔽非法校验操作并导致字段内出现非法字符,请酌情考虑开启此参数。
  • 当前屏蔽数据编码校验仅在服务端编码与数据编码保持一致时生效,即copy_special_character_version='no_error'时,数据库服务端编码须与数据文件编码保持一致,否则会报错;未指定数据编码时数据编码默认为客户端编码。
  • 如需记录非法编码字段,建议使用COPY语法中的log errors或log errors data参数。
  • 二进制模式下copy_special_character_version='no_error',仅对TEXT、CHAR、VARCHAR、NVARCHAR2、CLOB类型的字段生效。
  • 此参数仅在UTF-8、GB18030、GB18030_2022、ZHS16GBK、LATIN1字符集数据库下使用生效。
  • 客户端编码与服务端编码一致都为GBK或ZHS16GBK时,当数据库内存在非法编码的数据,如果不设置copy_special_character_version为per_byte,导出的数据文件中可能会存在预期外的数据。
  • 设置copy_special_character_version值为no_error时无法与COPY内COMPATIABLE_ILLEGAL_CHARS参数同时使用。
support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-1667.html