时间:2021-07-01 10:21:17 帮助过:21人阅读
2.在dos窗口输入命令
C:\Users\Administrator>sqlldr userid=username/passwd@sd control=C:\Users\Administrator\Desktop\sql.ctl,
(注:其中userid=用户名/用户密码@数据库实例的本地服务命名。)
在一开始运行这句话的时候,报错:
SQL*Loader-704: 内部错误: ulconnect: OCIServerAttach [0]
ORA-12154: TNS: 无法解析指定的连接标识符
后来发现有两个tnsnames.ora文件,一个属于oralceClient的,一个属于oracleDataBase的,平时的数据库实例本地配置都是写在oralceClient
下的tnsnames.ora中,于是将oralceClient下的tnsnames.ora内容复制到oracleDataBase下的tnsnames.ora中,上述命令便运行成功了。
虽然导入成功了,但是导入的数据不完整,且中文乱码。运行select * from nls_database_parameters和select * from nls_instance_parameters
发现nls_database_parameters中的字符集为ZHS16GBK,而导入的txt文件字符集为utf8,于是在Notepad++只能将txt文件转换为ANSI(GBK)编码后,
即导入正确。
附:ANSI编码
为使计算机支持更多语言,通常使用 0x80~0xFFFF 范围的 2 个字节来表示 1 个字符。比如:汉字 ‘中‘ 在
中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。
不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、GB18030、Big5、Shift_JIS 等各自的编码标准。
这些使用多个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。
在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码;在繁体中文Windows操作系统中,ANSI编码代表Big5;
在日文Windows操作系统中,ANSI 编码代表 Shift_JIS 编码。
不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。
ANSI编码表示英文字符时用一个字节,表示中文用两个或四个字节。
Oracle导入外部文件
标签:inf client 之间 范围 oralce utf8 pre view serial