天哪.ORACLE的导入导出怎么这么难呀.

conanfans 2007-11-22 09:29:53
小弟以前用DB2
从文件中导入数据表导,只有一条语句就OK了
TAB (a int,b int,c int)

file
1,2
2,3

load from file of del insert into TAB;

如果文件中的字段不完整,C字段自动会加NULL

而ORACLE搞死需要一个CTL文件,更BT的是还必须把字段列完整.
因为要导数据的程序是不固定的,用户上传的文件也不见得字段完整.所以请教一下ORACLE怎么导入最方便.


在DB2中要导出更是方便
export to a.txt of del select * from TAB

1,2
2,3就出来了.如果字段是CHAR型,自动会加上""号

而用sqlplus 导出来的结果是
1 , 2
2 , 3

会加上一大堆空格,字符型字段也没有用""引起来,我想用SED去掉空格都不行.


请各位专家们指教一下吧.
...全文
154 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shanshan3166 2008-02-18
  • 打赏
  • 举报
回复
给你推荐一个工具 SQL Developer ,http://www.oracle.com/technology/products/database/sql_developer/index.html
lovezw810624 2008-02-16
  • 打赏
  • 举报
回复
用多了就好
aiirii 2008-02-15
  • 打赏
  • 举报
回复
用工具,或者在程序导出了

从你的提问的内容,应该数据量不大,可以自己编个程序导出了
erhushenrui 2008-02-15
  • 打赏
  • 举报
回复
给你推荐一个工具,你用用吧!
http://www.2ccc.com/article.asp?articleid=4586
wdswcy 2007-11-23
  • 打赏
  • 举报
回复


1、逻辑备份
逻辑备份的工具叫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

AFIC 2007-11-23
  • 打赏
  • 举报
回复
pl sql developer有一个text importer起码倒入很方便
bzszp 2007-11-22
  • 打赏
  • 举报
回复
看看这样的结果行不行
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文件里的内容就是导出的数据
conanfans 2007-11-22
  • 打赏
  • 举报
回复
有没有不写控制文件的呀

现在最大的问题在于导出.请帮帮我吧.
bzszp 2007-11-22
  • 打赏
  • 举报
回复
如果使用sqlldr工具的话,就需要写控制文件
好处是效率高。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧