数据库乱码修改笔记(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;
   
    即可;
  

 
 

你可能感兴趣的:(oracle,sql,脚本,dos)