今天donna过来问我如何保存select的结果。
我告诉她用spool。
[@more@]spool的限制是结果集的大小,这个和sqlplus的缓冲区大小有关系。通常比较少的数据,比如在10万行以内,通常都可以使用这个命令的。
sqlplus>set head off --这个是每若干行结果之前没有字段名
set pagesize 0 ---表示不分页
set linesize 400 ----可能每行数据比较多,设置大一点,表示不换行
set feed off ----表示在输出结束后,没有那个summary,就是多少行
set trimspool on ---表示每段结果集之间没有空行
spool filename ----指示要spool到的文件名(可以带路径)
select 语句
spool off ---表示关闭spool,关闭文件
至于set这一块,要看sqlplus手册里面的,很多项,不过在spool经常用的就上面那几项了。
后来告诉我她要生成的是sql语句,就是说是不仅把数据选出来,还要生成sql语句,将来要插入到某个表中。
其实这个有两种解决办法:
1、insert into 一张新表把select的数据插入,再spool新表就可以了
2、可以在select语句中做文章,比如
select 'insert into table_name(column_lists) values '||......
这样子再spool出来,就是可以直接执行的sql语句了。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/47869/viewspace-829068/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/47869/viewspace-829068/