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.在dos窗口输入命令
C:\Users\Administrator>sqlldr userid=username/[email protected] 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编码表示英文字符时用一个字节,表示中文用两个或四个字节。

时间: 2024-07-30 10:12:33

Oracle导入外部文件的相关文章

android中activity可以响应外部的action的例子(可以用这个来导入外部文件)

如果我们在文件浏览器中点击一个文件,然后点击它,会弹出一个列表给你选择 如果使自己的应用也出现在这个列表上,必须在menifest的这个activity下加入: <activity android:name="com.example.clickabletextview.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name

oracle导入.dmp文件

在日常开发中,经常需要往一个数据库里导入.dmp文件,下面简单介绍下如何通过命令导入 1.创建一个awsbpm用户create user 用户名 identified by 密码; 如:create user test identified by test; 2.用户赋予相应的权限,权限最好赋高一点grant connect,resource,dba to test; 3.oracle中导入dmp文件,buffer最好给大点 imp userid='sys/[email protected] a

Oracle 导入DMP文件

首先说明dmp文件: 通常oracle数据库通过exp或expdp命令导出的备份文件是以dmp结尾.这种文件是oracle的逻辑备份文件,常用于数据库逻辑备份,数据库迁移等操作. Oracle导入备份文件步骤:我用的是Oracle 11g版本 1.把数据库的备份文件:xx.DMP  拷贝到 D:\work\app\admin\orcl\dpdump 目录下 在你的PLSQL Developer中作如下操作:步骤2-4 2.创建表空间 xx.dbf create tablespace shjwms

CAD二次开发---导入外部文件中的块并输出预览图形(五)

思路: 1)首先要定义一个数据库对象来表示包含块的文件,改数据库对象会被加载到内存中,但不会被显示在CAD窗口中. 2)调用Database类的ReadDwgFile函数将外部文件DWG文件读入到新创建的数据库对象中. 3)最后调用Database类的WblockCloneObjects函数将外部的DWG文件中块对象复制到当前数据库中. 1 /// <summary> 2 /// 外部文件导入块, 3 /// </summary> 4 /// <param name=&quo

oracle导入sql文件

公司以前都是用dmp操作数据导入导出,最近从别的地方人家给是sql文件数据库文件,不得不学习一下如何导入大文件的sql,好应对各种突发情况. 1.首先得会使用sqlplus连接远程数据库sqlplus 用户名/密码@远程数据库ip:端口/实例名2.连接成功之后使用命令 sql>@E:\areadata.sql; sql>@/opt/oracle/area.sql; 有时候中文会出现乱码问题,或者报错.例如: ERROR: ORA-01756: quoted string not properl

oracle导入sql文件,并且记录日志

一.导入.sql文件 @data.sql 二.记录日志: 1.输入命令  sqlplus 数据库名/密码@数据库   按回车键 2.输入spool  指定路径:\a.log    按回车键  (此步骤的主要作用就是追踪批量执行sql的日志,路径随便写,只要能找到就行,a.log可以随便起名,但是必须要.log后缀) 5:@start.sql  按回车键(在批量sql文件夹下写一个文件,名字叫start.sql,其中在这个文件里面写批量sql的文件名) 具体格式如下:@@sql的文件名.sql;

mysql导入外部文件

cmd导入步骤: 1. mysql -u username -p; 2.输入密码 3.show databases; //观察是否有想导入文件的数据库,如没有可以用create database name;语句新建. 4.use databases-name;//使用该数据库,cmd端提示 databases changed; 5.source .sql文件路径及名称; //提示query ok,导入sql文件成功. 6.此时用show tables;语句可以发现所想导入的表都导入成功.

Oracle导入脚本文件乱码问题

用脚本直接导入,Oracle出现乱码 绝大多数情况是Oracle客户端环境变量NLS_LANG的值和数据库字符集不一致导致. (注nls_lang修改的是Oracle客户端字符集的编码,locale命令中的lang是系统的字符集(suse修改在/etc/sysconfig/language)(Redhat在/etc/sysprofile/i18n)) 查看环境变量 echo $NLS_LANG 查看数据库字符集 select userenv('language') from dual; 如果二者

oracle导入dmp文件(恢复数据)

以下操作使用oracle管理员身份进行(如:sysdba) 1. 创建表空间 说明:创建的表空间名称需要和导出dmp那个表空间名称对应 create tablespace clims logging datafile 'D:\app\scott_ns\clims.dbf' size 100m autoextend on next 50m extent management local; 2. 创建用户 说明:创建的用户名称需要和导出dmp那个用户名称对应 create user clims id