oracle日常使用小结
来源:互联网 发布:计算机端口 编辑:程序博客网 时间:2024/06/11 13:38
一、oracle表的导入导出
1、通过exp/imp
将数据库TEST完全导出,用户名system 密码manager 的表table1,table2导出
exp system/manager@TEST file=c:/test.dmp tables=(table1,table2)
将c:/test.dmp中的表table1 导入
imp system/manager@TEST file=c:/test.dmp tables=(table1)
表的条件导出
将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=c:/test.dmp tables=(table1) query=/" where filed1 like '00%'/"
cmd中执行成功的情况下会出现一下字段
“没有警告的情况下成功终止导出/导入” 这说明表已经成功导出/导入
2、通过SQL Plus生成txt导入导出
导出txt文件,如下输入
spool c:/tbdata.txt
set heading off
set feedback off
select * from tbname;
spool off;
不过要注意所有的操作步骤都会出现在文本中
导入txt文件,注意上面导出的txt是不能够直接导入的,要先将多余的字段删除
第一步:把文本格式的数据文件放入C盘。如,test.txt
第二步:建立控制文件append.ctl。(名字可以随便取,放C盘下)
append.ctl的内容如下:
load data --1、控制文件标识
infile 'test.txt' --2、要输入的数据文件名为test.txt
append into table CTXSYS.test --3、向CTXSYS表空间中的表test中追加记录
fields terminated by X'09' TRAILING NULLCOLS--4、字段终止于X'09',是一个制表符 TRAILING NULLCOLS将所有不在纪录 中的指定位置的列当作空值
(name,age,btime) -----定义列对应顺序
(name,age,btime)也可以替换为(name CHAR(500),age number,btime DATE "YYYY-MM-DD HH24:MI:SS")对数据的格式进行说明
其中append为数据装载方式,还有其他选项:
a、insert,为缺省方式,在数据装载开始时要求表为空
b、append,在表中追加新记录
c、replace,删除旧记录,替换成新装载的记录
d、truncate,同上
第三步:在命令提示符下输入命令。
C:/>sqlldr userid=username/password
control=c:/append.ctl 数据库中用名的用户名和密码
二、oracle库的导入导出
通过exp/imp
1、整个库的导入导出
将数据库TEST完全导出,用户名system 密码manager 导出到c:/test.dmp中
exp system/manager@TEST file=c:/test.dmp full=y
将c:/test.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=c:/test.dmp
上面可能会报错,如果有些表已经存在,它就报错,对该表就不进行导入只要在后面加上 ignore=y 就可以了。
2、将用户scott的表导出
将数据库中scott用户的表导出
exp scott/tiger@TEST file=c:/test.dmp owner=(scott)
三、实际应用中的总结
1、删除重复记录
表table1,列c1,c2,c3
首先要找到的重复记录
第一种情况 所有字段都重合的小量数据
SQL> create table table_temp1 as select distinct * from table1;--找出所有唯一的列放入临时表,然后把原来的表清空 ,
把临时表数据导入就可以了
第二种情况 列c1,c2,c3有重复大数据量的情况下执行
SQL> delete student temp where (c1,c2,c3) in(select c1,c2,c3 from table1 group by c1,c2,c3 having
2 count(*)>1) and rowid not in(select min(rowid) from table1 group by c1,c2,c3 having
3 count(*)>1);
在使用的过程中还发现了两个有趣的现象
在“表编辑器”中group BY语句会报错,在sql plus里面执行就没问题
还有in语句,在“表编辑器”中检索出的数据为空,同样在sql plus里面执行就没可以找到相应的记录。
2、全角半角转换
To_single_byte( ) ---转成半角
To_multi_byte( ) -----转成全角
select To_single_byte(c1) from table1; --c1列的数据半角方式显示
- oracle日常使用小结
- baseline日常使用小结
- oracle 日常使用功能集
- Oracle数据日常使用脚本
- oracle数据库日常使用总结
- 日常小结-模板类型限制、getline使用
- 日常小结
- 日常小结
- 日常小结-协议小结
- 日常小结篇-日期处理(java程序,Oracle数据库)
- Oracle SQL_TRACE使用小结
- oracle使用小结
- Oracle SQL_TRACE使用小结
- oracle tkprof使用小结
- Oracle-Replace使用小结
- Oracle数据库的日常使用命令
- Oracle日常使用心得及sql语句
- NoSQL数据库MongoDB的日常使用小结(一)
- 加密软件
- 以前的笔记或摘录:保存网页中的所有图片
- 以前的笔记或摘录:通过Shellexecute发送带附件的邮件
- DOM基础(一)
- Vdsp(bf561)中的浮点运算(1):文档的说法
- oracle日常使用小结
- 访问 Microsoft SQL Server 元数据的三种方法
- JS判断脚本是否加载完成
- 取得列举型态变量的文字表示
- matlab函数
- 最近的计划
- sui控件与RzPanel控件冲突
- Delphi2007的IDE设置成Delphi7的分离样式
- 解决xp系统登录后自动注销