pc网页游戏网站,南充市企业网站建设,新泰房产信息与住宅网,WordPress通讯目录项目需要#xff0c;有个数据需要导入#xff0c;拿到手一开始以为是mysql#xff0c;结果是个PostGreSQL的数据#xff0c;于是装数据库#xff0c;但这个也不懂呀#xff0c;而且本系统用的Oracle#xff0c;于是得解决迁移转换的问题。 总结下来两个思路。
1、Postg…项目需要有个数据需要导入拿到手一开始以为是mysql结果是个PostGreSQL的数据于是装数据库但这个也不懂呀而且本系统用的Oracle于是得解决迁移转换的问题。 总结下来两个思路。
1、PostgresToOracle
多金的用第一种。 这个软件很好但是不便宜129美元试用期30天试用状态每次每表只能转1000条
2、SQL*LOADER
如果手头不宽裕可以用这种通用方法 我用的Aqua Data Studio 19
1、查询到数据
select * from public.xxx;这里会有个问题就是如果数据量太大比如我这里28万条会显示内存不足需要改下软件的默认内存大小 大约这个安装路径下这个文件 D:\Program Files\Aqua Data Studio 19.0 - 64bit\datastudio.ini 修改下vmarg.2大一些我这里直接调整为4096,
vmarg.1-Dsun.swing.enableImprovedDragGesture
vmarg.2-Xmx4096M
vmarg.3-XX:MetaspaceSize512m
vmarg.4-Djsse.enableCBCProtectionfalse2、将查询结果保存到本地
用datastudio的保存结果保存到本地
3、建表
根据postgresql的表结构进行创建oracle表这里建议所有数字number类型和时间类型统一改成varcharnvarchar也让我改成了varchar
4、sqlloder导入
sqlloadr配置文件 文件名 xxx.txt要导入的文件名 D:\xxx.csv
--编写 insert.ctl 文件
load data
characterset ZHS16GBK -- 表的储存格式
INFILE D:\xxx.csv -- 数据文本路径
Append into table xxx -- 表名
fields terminated by , -- 以,分割字段
(id,xzq,bldid
)执行命令进行导入
sqlldr username/password127.0.0.1:1521/orcl controlxxx.txt注意路径和文件名尽量不要用中文 characterset ZHS16GBK 这行用于避免中文乱码
这个sql查看数据库编码格式保持一致
select * from v$nls_parameters where PARAMETER like %NLS_CHARACTERSET%5、导入后数据验证处理
中间可能会出现报错会在当前目录下产生log日志可以查看报错信息我这遇到的主要是number类型存了非number数据让我都给改成varchar就没问题了后续可以在oracle里进行格式转换。 总之思路就是把复杂问题转换为自己能解决的问题postgresql我搞不了oracle那不是手拿把掐。