以文本形式下载表数据
oracle 缺乏将表中数据输出至文本文件的工具,因此只能利用sqlplus 和unix 工具做变通的处理sqlplus –s dbuser/oracle <<EOF >/dev/null
set colsep |;
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set linesize 1000;
set numwidth 12;
set termout off;
set trimout on;
set trimspool on;
spool tmp.txt;
select * from emp;
spool off;
exit
EOF
tr –d ‘ ‘ < tmp.txt >emp.txt 删除空格,可选注意:一定要用spool,如果在命令行中直接用>tmp.txt 可能会造成数据缺失,至少在Unixware7 上如此。
假定某域是char(n),如中间出现回车\n,则下载出的这条记录的格式将会错乱,不宜采用此方法
oracle 缺乏将表中数据输出至文本文件的工具,因此只能利用sqlplus 和unix 工具做变通的处理sqlplus –s dbuser/oracle <<EOF >/dev/null
set colsep |;
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set linesize 1000;
set numwidth 12;
set termout off;
set trimout on;
set trimspool on;
spool tmp.txt;
select * from emp;
spool off;
exit
EOF
tr –d ‘ ‘ < tmp.txt >emp.txt 删除空格,可选注意:一定要用spool,如果在命令行中直接用>tmp.txt 可能会造成数据缺失,至少在Unixware7 上如此。
假定某域是char(n),如中间出现回车\n,则下载出的这条记录的格式将会错乱,不宜采用此方法
SQL> spool obj; /*导出到当前目录下obj.lst文件中*/
SQL> set heading off; --禁止输出列标题
SQL> set feedback off; --禁止显示最后一行的计数反馈信息
SQL> set pagesize 50000; --设置显示多少行打印一次列名
SQL> select * from tb_src; 1 13132520000
2 13132520001
3 13132520002
4 13132520003
5 13132520004
6 13132520005
7 13132520006
8 13132520007
9 13132520008
10 13132520009
SQL> spool off;▲然后使用EXECL打开obj.lst文件,选择“空格”为分隔符即可。