暂无图片
oracle迁移数据库到kingbase 0x00报错
我来答
分享
暂无图片 匿名用户
oracle迁移数据库到kingbase 0x00报错

1.从oracle卸出一张表 表命 t_cs 列名id 路径 /test/test/t_cs.dat
id的内容为 011405220035-007\0004\0002\0009\011511300045
2.入kingbase
ksql -u usename -h 199.122.1.2 -p 1234 test -c "\copy t_cs from '/test/test/t_cs.dat '; "

报错 ERROR:invalid byte sequence for encoding "UTF8": 0x00

CONTEXT copy t_cs ,line 1: 011405220035-007\0004\0002\0009\011511300045

请问有人知道这个怎么解决吗?

随后我加了 set ignore_char_null_check=on 能入库 但是 只保留了 011405220035-007 其他字符自动删除了,

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
wo猪
  • SELECT * FROM t_cs WHERE text_column LIKE '%\x00%';
  • 考虑一下是不是存在包含非法 UTF - 8 序列的记录。

  • 直接使用set ignore_char_null_check=on 会忽略空字符,导致数据丢失的。


暂无图片 评论
暂无图片 有用 1
打赏 0
helloword
2024-12-18
那怎么解决这个问题,让数据入库?
wo猪

确定非法 UTF - 8 数据的位置:

SELECT * 

FROM your_table 

WHERE UTL_RAW.CAST_TO_RAW(text_column) LIKE '%' || UTL_RAW.CAST_TO_RAW(CHR(0)) || '%';

清理非法 UTF - 8 数据:

UPDATE your_table 

SET text_column = REPLACE(text_column, CHR(0), '');

验证清理结果:

SELECT * 

FROM your_table 

WHERE UTL_RAW.CAST_TO_RAW(text_column) LIKE '%' || UTL_RAW.CAST_TO_RAW(CHR(0)) || '%';

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
请问各位大佬oracle advanced queue如何查看队列名称和队列定义?
回答 1
SELECTqueuename,queuetable,queuetypeFROMDBAQUEUES;SELECTqueuetable,comment,messagetypeFROMDBAQUEUETA
Oracle 审计grant权限
回答 4
已采纳
用了两条命令搞定了。auditallbyabyaccesswheneversuccessful;auditgrantona.tablebyaccess; 
JDBC使用绑定变量,9个字符升级为128位
回答 5
已采纳
你这个错误通常出现在使用绑定变量的SQL语句中,由于数据类型或长度不匹配导致绑定变量与实际参数值不一致,从而导致报错。在你的情况下,可能是因为你绑定变量的长度为32位,但实际传入的值长度超过了32位,
如何查询oracle表空间剩余信息
回答 2
selecta.tablespacename,trunc(total/1024/1024/1024,2)"SUMSPACE/G",trunc((totalnvl(free,0))/1024/1024/
如何评估undo需要多大空间?
回答 1
已采纳
方法一:要确定需要的undo表空间的大小,需要以下3条信息aur:以秒为单位的undoretentionsql>showparameterundoretention;//900秒秒bups:计算
谁做过用Oracle SMTP包自动发邮件实现实时告警?
回答 3
已采纳
为了实现您描述的自动发送邮件的实时告警功能,可以使用Oracle数据库中的DBMSSCHEDULER和UTLMAIL包。以下是针对您提到的三个场景的具体实现方法:1.工厂设备down机告警当工厂设备d
关于Oracle 12C opatch下列哪三个说法正确
回答 1
已采纳
A它可以应用某些补丁程序而无需关闭数据库实例C它可以将补丁应用到数据库ORACLEHOME。E它可以将补丁集应用于数据库ORACLEHOME
在Oracle中,关于触发器的描述正确的是
回答 1
已采纳
BDML触发器是一个对关联表发出insert、update、delete或select…forupdate语句时触发的存储过程
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 能直接升级到21c吗?还是要先升级到19c
回答 1
直接可以升级到21c的版本:oracle数据库12.2.0.1,18c,19c所以您这个可以直接升级到21c
金仓数据库kingbaseES的字符集该如何选择?
回答 2
在金仓数据库KingbaseES中,你可以选择UTF8、GBK或GB18030作为字符集。以下是关于这三种字符集的一些信息,以帮助你做出选择:UTF8:UTF8是一种通用的字符编码方式,它能够表示世界
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~