我的工作做了一些流程,例如
将数据从csv加载到MySQL(迁移副本表-来自MSSQL)
读取MySQL数据以制作VO Java类
VO编辑后,将保存到MySQL(另一个表)
问题是 ...
打开CSV文件,我可以看到特殊字符^@
LOAD DATA
之后再做SELECT
查询,数据不包含^@
但是,我通过Java读取了相同的数据并还原到另一个表中,该表存储\u0000
如何删除此\^0000
?
在当前情况下最好的解决方案,我想用Java代码处理...
仅供参考
Windows OS上的MSSQL转储(来自客户端)
MySQL在Windows上加载数据(本地开发环境)
执行迁移的程序在CentOS(服务器)上
最佳答案
我相信您的导出会将BIT值转储为实际的“位字符”,即BIT 0
变为\0
,而BIT 1
变为\1
。
为了方便(和提高速度),您可以使用带有以下设置的univocity-parsers解析CSV:
CsvParserSettings parserSettings = new CsvParserSettings();
parserSettings.setSkipBitsAsWhitespace(false); //prevents treating \0 and \1 as blank space
CsvParser parser = new CsvParser(parserSettings);
然后,可以在出现的列上分别将
\0
和\1
替换为字符0
和1
。希望这可以帮助。