数据库乱码修改笔记(1)

(确保当前Oracle数据库实例infosys的服务端字符集编码是英文US7ASCII的,可以关闭其他实例的服务,
以免受干扰)

1.设置客户端字符集为US7ASCII
D:\>SET NLS_LANG=AMERICAN_AMERICA.US7ASCII

备注:(如果是中文:则更改客户端字符集为ZHS16GBK D:\>SET NLS_LANG=AMERICAN_AMERICA.ZHS16GBK )

2.查看服务器字符集为US7ASCII,确保当前字符集是英文字符集
SQL> SELECT * FROM NLS_DATABASE_PARAMETERS;

PARAMETER VALUE
------------------------------
NLS_CHARACTERSET US7ASCII


3.管理员角色登陆
D:\>sqlplus "/as sysdba"

4.创建用户
SQL> create user infosys identified by infosys;
User created.
SQL> grant dba to infosys;
Grant succeeded.

5.登陆新用户
SQL> conn infosys/infosys
Connected.

6.执行SQL脚本 infosys-new.sql:
复制含有中文字符的sql脚本,在当前位置黏贴,会将这些脚本在当前用户的表空间中间建立相应的数据库对象;
备注:第一步如果不对,则此操作不能正确结束
7.查看数据:
登陆plsql连接工具查看表数据,如果为以下数据样式,则基本上是导入数据成功;
Nw3G9zK0Nq>V
O5M3Cf0e
SC;'Cf0e

8.服务端是US7ASCII英文编码而在导入数据的时候客户端也是US7ASCII英文编码,所以现在数据库中肯定是英文编码的,
如果想转换成中文编码,那么在导出数据之后,打成byte数组,然后再编码:

String str = new String(parameter.getBytes("iso-8859-1"),"gbk");

9.如果开启新的DOS窗口,重新登陆sqlplus查看数据,肯定也是英文编码的乱码,如果想从这里看到中文,很简单:
重复再做第1步的操作:
D:\>SET NLS_LANG=AMERICAN_AMERICA.US7ASCII

D:\>sqlplus infosys/infosys@infosys;

SQL> select * from P_group;

即可;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值