LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1521|回复: 7

oracle文本导出

[复制链接]
发表于 2006-5-17 13:25:33 | 显示全部楼层 |阅读模式
在oracle下有没有类似于mysql中以文本形式导出记录 :select * from table_name into outfile "test.txt"

谢谢
发表于 2006-5-17 16:34:07 | 显示全部楼层
spool path/filename;
select * from table_name;
spool off;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-17 18:10:30 | 显示全部楼层
谢谢,你的办法我用过,但是格式太乱了,顺便再问个问题:

我从用exp到出一张表A,文件名为test.dmp,然后我新建了一张表B,格式同A.
我现在想把test.dmp导入到表B,用imp是否可以实现?


imp shenbao/password fromuser=shenbao  file=test.dmp tables=B

我运行了报错,提示: Table "B" not found in export file
回复 支持 反对

使用道具 举报

发表于 2006-5-18 09:45:50 | 显示全部楼层
不可以,tables指定的是你emp备份中有的内容,所以应该是a表
你这样做的话如果是同一数据库的中可以通过create table tablename as select * from table来实现,不同的用户下的object可以通过创建同义词和grant 权限来实现
如果是非本地数据库,可以通过建立dblink来实现create table
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-20 00:31:33 | 显示全部楼层
谢谢,我查一下dblink和同义词的用法

我用exp导出的dmp文件,再用imp导入数据库,在执行imp时会提示:Failed to import,tablename已存在,当初备份的对象(table)在数据库里存在(我的意思是table存在,但是其中的table中的记录不同),我只能把对象(表)drop后,才能用imp恢复数据。imp是否有什么参数可以不用drop而直接覆盖或添加某些已存在的记录?


谢谢
回复 支持 反对

使用道具 举报

发表于 2006-5-21 01:10:00 | 显示全部楼层
好象没那么高级吧
至少我们一般,imp到用户,如果发现错误了,比如权限设置错了,都drop用户然后重新imp
有次有个表有50w+的记录想跳过去,那个时候用的办法是一到这个表就中断imp过程,然后重新imp,因为有过结构的他就自动跳过
你可以参考下文档里关于imp的东西。毕竟那么多参数,也不是个个都用个
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-21 13:29:50 | 显示全部楼层
你指的中断imp过程是怎么实现的?

oracle有没有只导出数据而不导出表结构? 类似于mysql里的load data infile .....

谢谢
回复 支持 反对

使用道具 举报

发表于 2006-5-23 10:17:13 | 显示全部楼层
你要导到哪里去
你搞个什么pl/sql developer或者toad不都可以了么?随便你怎么导
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表