小弟以前用DB2
从文件中导入数据表导,只有一条语句就OK了
TAB (a int,b int,c int)file
1,2
2,3load from file of del insert into TAB;如果文件中的字段不完整,C字段自动会加NULL而ORACLE搞死需要一个CTL文件,更BT的是还必须把字段列完整.
因为要导数据的程序是不固定的,用户上传的文件也不见得字段完整.所以请教一下ORACLE怎么导入最方便.
在DB2中要导出更是方便
export to a.txt of del select * from TAB1,2
2,3就出来了.如果字段是CHAR型,自动会加上""号而用sqlplus 导出来的结果是
1 , 2
2 , 3会加上一大堆空格,字符型字段也没有用""引起来,我想用SED去掉空格都不行.
请各位专家们指教一下吧.
从文件中导入数据表导,只有一条语句就OK了
TAB (a int,b int,c int)file
1,2
2,3load from file of del insert into TAB;如果文件中的字段不完整,C字段自动会加NULL而ORACLE搞死需要一个CTL文件,更BT的是还必须把字段列完整.
因为要导数据的程序是不固定的,用户上传的文件也不见得字段完整.所以请教一下ORACLE怎么导入最方便.
在DB2中要导出更是方便
export to a.txt of del select * from TAB1,2
2,3就出来了.如果字段是CHAR型,自动会加上""号而用sqlplus 导出来的结果是
1 , 2
2 , 3会加上一大堆空格,字符型字段也没有用""引起来,我想用SED去掉空格都不行.
请各位专家们指教一下吧.
好处是效率高。
SQL> set feedback off;
SQL> set pagesize 0;
SQL> set heading off;
SQL> spool d:\tb.sql
SQL> select cola||','||colb from tb;
001,aaa
002,aaa
003,aaa
031,aaa
004,aaa
021,aaa
022,aaa
055,aaa
SQL> SPOOL OFF
SQL> tb.sql文件里的内容就是导出的数据
逻辑备份的工具叫Exp,完成将数据库指定对象的内容导出的任务。它导出的文件,必须由专门的恢复工具Imp来完成导入。
语法:
有以下方法查看帮助
D:\>exp help=y
如:
emp 用户名/口令 参数1=值 参数2=值
1)导出指定的表
exp hr/hr file=导出文件名 tables=(表1,表2.....)
2)备份一个用户(方案)下的所有对象,包括表、视图、过程、函数等
a.自已进行备份
exp hr/hr file=hr.dmp
b.管理员来备份用户
exp system/a123 file=hr_full.dmp owner=(hr,test....)
3)备份整个数据库,所有的方案对象(除Sys的以外),一般常用做为生产系统的数据库备份方案。它可以保持用户间的一些关系(权限)
exp system/123 file=full.dmp full=y
exp常用参数
buffer:缓冲区大小。
log :将备份时屏幕输出信息记录到文件,这个参数是指定输出日志文件。
导入(逻辑恢复)工具 imp
语法:
imp 用户/口令 file=文件名 tables=表名
按用户导入
imp system/a123 file=文件名 fromuser=hr touser=新的用户名
全部恢复(除sys以外所有的用户及对象都导入),需要先用dbca创建数据库。
imp system/a123 file=文件名 full = y
从全库备份中恢复一张表
imp system/a123 file=文件名 fromuser=hr touser=hr tables=(表名) 参数:
buffer:缓冲区大小。
commit:指定为Y,导入部分记录后提交一次
ignore:指定为Y,导入过程中会忽略“对象已经存在”这种错误。
网络导出与导入 exp hr/hr@jjjj file=jjj.txt
imp hr/hr@jjjj file=jjj.txt
http://www.2ccc.com/article.asp?articleid=4586