1、在UNIX下运行如下角本,也可以在数据库中手工执行
---------------------
sqlplus –s user/passwd << EOF
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
---------------------
注意:一定要用spool,如果在命令行中直接用>tmp.txt 可能会造成数据缺失,至少在Unixware7 上如此。
假定某域是char(n),如中间出现回车\n,则下载出的这条记录的格式将会错乱,不宜采用此方法。2、将导出的数据传到WINDOWS平台上,使用EXECL打开数据,或者使用C写个程序,将文件中的列分隔符由“|”改为“TAB”,并去掉多余的空格。3、使用SQL SERVER的BCP命令导入上述文件
bcp 导入表名 in 导入文件名 -Uuser -Ppasswd -c
---------------------
sqlplus –s user/passwd << EOF
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
---------------------
注意:一定要用spool,如果在命令行中直接用>tmp.txt 可能会造成数据缺失,至少在Unixware7 上如此。
假定某域是char(n),如中间出现回车\n,则下载出的这条记录的格式将会错乱,不宜采用此方法。2、将导出的数据传到WINDOWS平台上,使用EXECL打开数据,或者使用C写个程序,将文件中的列分隔符由“|”改为“TAB”,并去掉多余的空格。3、使用SQL SERVER的BCP命令导入上述文件
bcp 导入表名 in 导入文件名 -Uuser -Ppasswd -c
解决方案 »
- 为什么查询结果,一定要调用Resultset的next()??
- 发现一个Recover Writer经常没有在运行 怎么启动它?
- 【怎么样把sysdate插入到数据库中让数据库自动返行sysdate自动取服务器时间?】
- oracle 10g job不自动执行
- oracle logminer
- ORA 00001 unique constraint (System.CDXXID )violated
- 求一oracle语句
- 如何把一个表的记录插入倒另一个表中去
- pl/sql developer与developer2000的区别是什么?
- 如何写过程
- JAVA调用oracle的存储过程时为什么返回的结果集是 null ?
- 怎么知道两个日期date变量之间相差多少年,月,日,时,分,秒?
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 存储文件名;
select * from 要导出的表名;
spool off;
exit
2、现在,ORACLE中某一表的内容就已经导入到上述提到的“存储文件名”文件中了;3、由于文件中的列分隔符设定为“|”,需要使用EXECL把开该文件,将列分隔附替换成“TAB”,并使用TRIM()函数去掉列中的空格4、在SQL SERVER中建立一个与ORACLE中结构相同的表。5、使用SQL SERVER自带的BCP命令导入数据。
bcp 导入表名 in 导入文件名 -U用户名 -P口令 -c