本帖最后由 hanyush 于 2014-9-16 11:11 编辑
我用spool导出text后,会得到以下结果,Request Shipment Date,包括年月日,但每列的字段名都别截断了,无法识别这列是什么名字,虽然可以通过类似于column Request Shipment Date fomart A22来实现显示每列完整的字段。但问题是,在这个样例里是没几个字段,而正式的环境里,可能有几十个字段,每个日期都要添加年月日,周,季度,如果每个都要通过column 设置下格式,会比较麻烦。
想请教的是:有无一个参数或者一个办法,能将select语句里所有的字段,每列的字段名完整的显示出来?导出的相关数据不能被截断。
如果没有的话,那只能按需要给字段做column来设置长度了
看导出来的数据,似乎是根据数据宽度来显示的,而不是根据字段名宽度,当然就算根据字段名宽度导出,也不能把数据截断了。
spool语句:
set echo off
set feedback off
set newpage none
set pagesize 0 embedded on
set linesize 1025
set trims on
set heading on
set timing off
SET SPACE 0
set colsep |
SPOOL d:\spool.txt
select substr(t$item,1,23) item,
TO_CHAR(new_time(lmdt,'ydt','gmt'),'DD/MM/YYYY') "Request Shipment Date", --->"from Contract Date"
TO_CHAR(new_time(lmdt,'ydt','gmt'),'YYYY') "Request Year",
TO_CHAR(new_time(lmdt,'ydt','gmt'),'MM') "Request Month",
TO_CHAR(new_time(lmdt,'ydt','gmt'),'DD') "Request Day",
TO_CHAR(new_time(lmdt,'ydt','gmt'),'IW') "Request Week",
TO_CHAR(new_time(lmdt,'ydt','gmt'),'Q') "Request Quarter"
from tableA
;
SPOOL OFF
出来的结果:
ITEM|Request Sh|Requ|Re|Re|Re|R
11009A0001|24/06/2013|2013|06|24|26|2
10400B0001|01/04/2013|2013|04|01|14|2
11009C0001|03/06/2013|2013|06|03|23|2
需要的得到是是这样的
ITEM|Request Shipment Date |Request Year|Re|Request Day|Request Week|Request Quarter
11009A0001|24/06/2013
|2013|06|24 |26
|2
10400B0001|01/04/2013
|2013|04|01 |14
|2
11009C0001|03/06/2013
|2013|06|03 |23
|2
|