Oracle导入外部文件

Oracle导入外部文件

一.使用PL/SQL的导入工具导入excel文件

  1. 打开pl/sql,点击菜单栏中的T00LS->ODBC Imtorper,打开ODBC Importer选项框;
  2. 在Data fromODBC页中选择需要导入的文件的格式,选择ExcelFiles.输入用户名密码。然后点击Connect;
  3. 在跳出的选择工作簿对话框,选择所要导入的Excel文件,点击确定;
    在出现的Table/Query中的Import Table中单击表名,可以在下方的ResultPreview中看到所要导入的表格的内容;
  4. 点击Date to Oracle按钮,打开Date to Oracle选项框, 选则你要导入的表名,

本次导入表为SFISM4.U_RF_ID_DATA,在Owner下拉菜单中选SFISM4,在Table下拉菜单选择U_RF_ID_DATA,在Fields选则你要导入的字段,本次导入的字段是SERIAL_NUMBER,点击Import将成批数据导入Oracle数据库中,这样就完成了导入数据。

二.使用sqlldr导入txt文件

速度比第一种快,但是部署比较麻烦,适合上百万量的导入

  1. 写控制文件
    load data
    infile ‘C:/Users/Administrator/Desktop/ctl.txt’
    append into table test
    fields terminated by ‘|’
    (
    SEQ,
    NAME,
    NAME_BUSI,
    NAME_ACCOUNT,
    ACCOUNT,
    BANK_NAME
    )

  2. 在命令行窗口输入命令
    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编码表示英文字符时用一个字节,表示中文用两个或四个字节

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值