搜索
查看: 1212|: 0

【Oracle】oracle中把表导出为txt文件方法

[复制链接]

142

主题

3

回帖

492

积分

版主

积分
492
发表于 2014-10-29 17:00:18 | 显示全部楼层 |阅读模式

1.plsqldev 里面有一个选项可以把表以execl格式到时

2.使用spool

  1. sqlplus / as sysdba

  2. set linesize 1000
  3. set pagesize 0
  4. set echo off
  5. set termout off
  6. set heading off
  7. set feedback off
  8. SET trims ON
  9. set term off
  10. SET trimspool ON
  11. SET trimout ON
  12. spool '/archlog/exp/test.txt';
  13. select OWNER||' , '||SEGMENT_NAME||' , '||PARTITION_NAME||' , ' from dba_segments where rownum<100;
  14. spool off;
复制代码

#输出的test.txt文件头尾要编辑下
#set term off 只有在使用.sql脚本文件时才起作用,如上虽然指定了 set term off但是还是会把结果输出,也就是说set term off设置只对sql脚本有用

3.使用UTL_FILE程序包


##UTL_FILE.FOPEN第一个参数为文件路径,不能直接指定绝对路径,需要建立directory,然后指定我们建立的directory
sqlplus / as sysdba
create directory MY_DIR as '/home/oracle/';
grant read,write on directory dir_dump to HR;##也可以直接建立一个public directory

  1. CREATE OR REPLACE PROCEDURE test
  2. IS
  3. testjiao_handle UTL_FILE.file_type;
  4. BEGIN
  5.   test_handle := UTL_FILE.FOPEN('MY_DIR','test.txt','w');
  6.     FOR x IN (SELECT * FROM TESTJIAO) LOOP
  7.       UTL_FILE.PUT_LINE(test_handle,x.ID || ',' || x.RQ ||',');
  8.     END LOOP;
  9.       UTL_FILE.FCLOSE(test_handle);
  10. EXCEPTION WHEN OTHERS THEN
  11.   DBMS_OUTPUT.PUT_LINE(SUBSTR(SQLERRM,1,2000));
  12. END;
  13. /
复制代码


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

本版积分规则

大数据中国微信

QQ   

版权所有: Discuz! © 2001-2013 大数据.

GMT+8, 2024-11-15 20:32 , Processed in 0.236084 second(s), 24 queries .

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