zoukankan      html  css  js  c++  java
  • 将现有的sql脚本导入 Oracle 数据库,中文乱码问题

    将现有的sql 脚本导入 Oracle数据库

    比如 在windows 系统下,可以写一个 bat 来实现直接导入

    如:bat 中的内容如下,logs.log 将会记录执行日志

    sqlplus user/password@dbname @create.sql  > logs.log
    

    create.sql 中的内容可以是需要执行的sql 语句,也可以是其他sql 脚本,如:

    @leave_create.sql
    exit

    leave_create.sql 中的内容如下

    create table a_employee (
    	id number(10) primary key ,
    	name varchar2(255) not null,
    	password varchar2(255) not null ,
    	email varchar2(255) ,
    	role varchar2(255) ,
    	manager_id number(10) 
    );
    
    create sequence seq_employee minvalue 1 nomaxvalue start with 1 increment by 1 nocycle nocache;
    
    INSERT  INTO a_employee(id,name,password,email,role,manager_id) VALUES (seq_employee.nextval,'老板','123','ee@163.com','boss',NULL);
    INSERT  INTO a_employee(id,name,password,email,role,manager_id) VALUES (seq_employee.nextval,'主任','123','cc@163.com','manager',1);
    INSERT  INTO a_employee(id,name,password,email,role,manager_id) VALUES (seq_employee.nextval,'员工','123','aa@163.com','user',3););
    
    
    commit;
    

    执行bat 文件,理论上数据创建完成。

    打开日志文件,发现文件中报错 

    ERROR:
    ORA-01756: quoted string not properly terminated

    查询数据,发现 中文显示乱码

    解决方法:

    检查客户端的编码格式

    使用sqlplus 连接数据库 执行 Select userenv('language') from dual;  查询结果为:AMERICAN_AMERICA.ZHS16GBK

    设置windows 环境变量 

     NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    TNS_ADMIN=D:oracleproduct10.2.0client_1NETWORKADMIN (客户端的安装路径下)

    sql 脚本也有一定的编码格式(可以使用客户端连接工具保存的sql 文件 来保证sql 脚本文件的编码正确性)

  • 相关阅读:
    在IIS中浏览网站时出现:无法打开登录所请求的数据库 "***",登录失败
    Java中的深拷贝和浅拷贝(转载)
    Java的Final和C#的Const,Readonly比较分析(转载)
    C#中的Sealed和J#中的Final比较(转载)
    Java全系列帮助文档下载
    The Willpower Instinct(自控力,意志力)
    瓦片地图的前世今生(转载)
    创建CUDA项目
    CUDA warning C4819的消除
    并行调用
  • 原文地址:https://www.cnblogs.com/panie2015/p/5807184.html
Copyright © 2011-2022 走看看