一、Oracle
数据库
导入导出
导入导出可采用命令方式、PL/SQL工具 2种方式
1、 命令方式
数据库导出:
1) 将数据库TEST完全导出,用户名system密码manager导出到D:\daochu.dmp中exp system/manager@TEST file=d:\daochu.dmp full=y
2) 将数据库中的表bookinfor、dept导出
Exp doris/doris@TESTDB file= d:\data\daochu.dmp tables=(bookinfor,dept)
3) 按条件导出数据
exp doris/doris@doris file=d:\daochu1.dmp tables=(dept) query=’where dept_id=1’
--query子句
4) 只导出表,不导出数据
exp doris/doris@doris file=D:\daochu2.dmp rows=N tables=(bookinfor)
--rows=N 表示只导出表,不导出数据
5) 按用户方式导出数据
exp scott/tiger@doris file=e:\scott_back owner=scott;
6) 按表空间方式导出数据
exp sys/doris@doris tablespaces=(users) file=e:\user_tab; --只有DBA才能执行完整数据库或表空间的导出
数据库导入:
1) 将D:\daochu.dmp 中的数据导入 TEST数据库中
imp system/manager@TEST file=d:\daochu.dmp
imp doris/doris@testdb full=y file= d:\data\daochu.dmp ignore=y
--ignore=y则会跳过错误
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
2) 将d:\daochu.dmp中的表table1导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
3) 将数据库TEST中用户user1的表dept导到用户user2,密码user2下
imp user2/user2@TEST file=d:\daochu.dmp fromuser=user1 touser=user2 tables=(dept)
二、批量导入数据到oracle的方法(以excel为例)
经过摸索,解决了excel表导入oracle数据库的问题,并通过了实验。我主要使用了2种方法,这些方法也可以用于将其它格式的数据导入到oracle中,这里只是以excel为例。
方法一,使用SQL*Loader
这个是用的较多的方法,前提必须oracle数据中目的表已经存在。
大体步骤如下:
用sqlloader: (如果表不存在,则必须先建表)
1、打开MicroSoft Excel 2007
2、文件(F)→新建(N)→工作簿→ 录入需要导入的数据
例如,在Excel中数据格式如下:
id
username
password
2
bb
342
3
cc
234
4
dd
433
4、文件(F)→另存为(A)→
保存类型为:制表符分隔,起名为text.txt,保存到C:\
5、连入SQL*Plus 或者PL/SQL
登陆,创建表结构
SQL> create table test
(
id number, --序号
username varchar2(10), --用户名
password varchar2(10), --密码
);
6、创建SQL*Loader输入数据所需要的文件,均保存到C:\,用记事本编辑:
控制文件:input.ctl,内容如下:
load data --1、控制文件标识
infile 'C:\text.txt' --2、要输入的数据文件名为text.txt
append into table test --3、向表test中追加记录
fields terminated by X'09' --4、字段终止于X'09',是一个制表符(TAB)
(id,username,password) --定义列对应顺序
a、insert,为缺省方式,在数据装载开始时要求表为空
b、append,在表中追加新记录
c、replace,删除旧记录,替换成新装载的记录
d、truncate,同上
7、在DOS窗口下使用SQL*Loader命令实现数据的输入
C:\>sqlldr userid=system/manager control=input.ctl
默认日志文件名为:input.log
默认坏记录文件为:input.bad
方法二 利用PLSQL Developer
使用PLSQL Developer工具,这个是常用的工具。
在单个文件不大的情况下(少于100000行),并且目的表结构已经存在的情况下——对于excel而言肯定不会超过了,因为excel文件的最大行为65536—— 可以全选数据Ctrl+V,然后用PLSQL Developer工具。
Excel表中的数据如下,全选数据复制(不要选中列头)
id
username
password
2
bb
342
3
cc
234
4
dd
433
1、 在PLSQL Developer的sql window里输入select * from test for update; (必须加上关键字for update)
2 、 按F8执行
3、 打开锁, 鼠标定位到最后一行。 再把鼠标点到第一列的列头,使全列成选中状态,然后Ctrl+C,再鼠标单击√à关闭锁àcommit提交即可。
使第一列成全选中状态
然后,Ctrl+C,结果如下:
关闭锁,最后再commit即可。
导入导出可采用命令方式、PL/SQL工具 2种方式
1、 命令方式
数据库导出:
1) 将数据库TEST完全导出,用户名system密码manager导出到D:\daochu.dmp中exp system/manager@TEST file=d:\daochu.dmp full=y
2) 将数据库中的表bookinfor、dept导出
Exp doris/doris@TESTDB file= d:\data\daochu.dmp tables=(bookinfor,dept)
3) 按条件导出数据
exp doris/doris@doris file=d:\daochu1.dmp tables=(dept) query=’where dept_id=1’
--query子句
4) 只导出表,不导出数据
exp doris/doris@doris file=D:\daochu2.dmp rows=N tables=(bookinfor)
--rows=N 表示只导出表,不导出数据
5) 按用户方式导出数据
exp scott/tiger@doris file=e:\scott_back owner=scott;
6) 按表空间方式导出数据
exp sys/doris@doris tablespaces=(users) file=e:\user_tab; --只有DBA才能执行完整数据库或表空间的导出
数据库导入:
1) 将D:\daochu.dmp 中的数据导入 TEST数据库中
imp system/manager@TEST file=d:\daochu.dmp
imp doris/doris@testdb full=y file= d:\data\daochu.dmp ignore=y
--ignore=y则会跳过错误
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
2) 将d:\daochu.dmp中的表table1导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
3) 将数据库TEST中用户user1的表dept导到用户user2,密码user2下
imp user2/user2@TEST file=d:\daochu.dmp fromuser=user1 touser=user2 tables=(dept)
二、批量导入数据到oracle的方法(以excel为例)
经过摸索,解决了excel表导入oracle数据库的问题,并通过了实验。我主要使用了2种方法,这些方法也可以用于将其它格式的数据导入到oracle中,这里只是以excel为例。
方法一,使用SQL*Loader
这个是用的较多的方法,前提必须oracle数据中目的表已经存在。
大体步骤如下:
用sqlloader: (如果表不存在,则必须先建表)
1、打开MicroSoft Excel 2007
2、文件(F)→新建(N)→工作簿→ 录入需要导入的数据
例如,在Excel中数据格式如下:
id
username
password
2
bb
342
3
cc
234
4
dd
433
4、文件(F)→另存为(A)→
保存类型为:制表符分隔,起名为text.txt,保存到C:\
5、连入SQL*Plus 或者PL/SQL
登陆,创建表结构
SQL> create table test
(
id number, --序号
username varchar2(10), --用户名
password varchar2(10), --密码
);
6、创建SQL*Loader输入数据所需要的文件,均保存到C:\,用记事本编辑:
控制文件:input.ctl,内容如下:
load data --1、控制文件标识
infile 'C:\text.txt' --2、要输入的数据文件名为text.txt
append into table test --3、向表test中追加记录
fields terminated by X'09' --4、字段终止于X'09',是一个制表符(TAB)
(id,username,password) --定义列对应顺序
a、insert,为缺省方式,在数据装载开始时要求表为空
b、append,在表中追加新记录
c、replace,删除旧记录,替换成新装载的记录
d、truncate,同上
7、在DOS窗口下使用SQL*Loader命令实现数据的输入
C:\>sqlldr userid=system/manager control=input.ctl
默认日志文件名为:input.log
默认坏记录文件为:input.bad
方法二 利用PLSQL Developer
使用PLSQL Developer工具,这个是常用的工具。
在单个文件不大的情况下(少于100000行),并且目的表结构已经存在的情况下——对于excel而言肯定不会超过了,因为excel文件的最大行为65536—— 可以全选数据Ctrl+V,然后用PLSQL Developer工具。
Excel表中的数据如下,全选数据复制(不要选中列头)
id
username
password
2
bb
342
3
cc
234
4
dd
433
1、 在PLSQL Developer的sql window里输入select * from test for update; (必须加上关键字for update)
2 、 按F8执行
3、 打开锁, 鼠标定位到最后一行。 再把鼠标点到第一列的列头,使全列成选中状态,然后Ctrl+C,再鼠标单击√à关闭锁àcommit提交即可。
使第一列成全选中状态
然后,Ctrl+C,结果如下:
关闭锁,最后再commit即可。