ORACLE10g字符集转换操作的备忘

以system登录数据库之后,修改props$表中的字符集字段,数据库重新启动表全部丢失.

20070718
用ACCESS导入和导出ORACLE数据库时,建立ODBC时,选择机器数据源,不要选择本地的ORACLE数据库,选择microsoft odbc for oracle可直接进行字符集的转化,不然如果两台ORACLE数据库的字符集不同,有可能出现乱码,其实是并未发生转化.
还有一点要注意的是在导入的ORACLE数据库上操作时,注册表和ORACLE服务器的字符集要保持一致,不然也会出现乱码造成字符集转化失败,导完之后改成一致也不行.
导入的表结构不变,字段类型有所变化,主键索引唯一丢失.

从ZHS16GBK数据库EXP导出,再IMP导入WE8ISO8859P1数据库
目前发现最简单的办法不是用ACCESS,而是用EXP/IMP先把数据库导入目标数据库,没有中文的表就不用动了,剩下的表 truncate table 表名处理完,只导入基础数据,先在ZHS16GBK端把要导出的表另存为TAB分隔的TXT,操作的机器的注册表必须是ZHS16GBK.然后把注册表改为WE8ISO8859P1,改完之后用PB连WE8ISO8859P1数据库,新建立数据窗口导入,导入前先RETRIEVE一下

20070717
ORA数据库字符集WE8ISO8859P1
ORA服务器端注册表WE8ISO8859P1
客户端ZHS16GBK
1.客户端连接服务器看服务器端数据
数据库中中文为乱码;新增一行中文为乱码
从服务器端看
原来中文正常;新增的行的中文乱码
2.服务器端注册表改为ZHS16GBK
原来中文乱码,步骤1中新增的行还是乱码
3.客户端注册表改为WE8ISO8859P1
从客户端看服务器中文正常,步骤1新增的中文乱码
新增加一行,增加行中文显示正常
此时再从服务器端看原来的和新增的中文都正常
4.客户端再改为ZHS16GBK
原来中文和步骤3的中文都为乱码

你可能感兴趣的:(oracle10g)