用shell访问数据库代码如下:
sqlplus $1/$2@$3 << EOF > /dev/null
set head on
set underline off
set trimspool off
set feedback off
set linesize 2000
set pagesize 100
set colsep $COLSEP
spool ./$$.log
$SQL
spool off
exit
EOF
可以得到类似下面的结果:
ID,00001,00002,00003
1,a,b,cc
2,aa,bb,cc
3,aaa,bbb,cc
4,aaaa,bbbb,cc
其中第一行为表头,在set head on的时候可以显示,我想问的问题是当结果集中的某一列结果最长 例如第四列为两个字符的时候那么表头也相应的取前两位,这个地方对应的结果就是:
ID,00001,00002,00
1,a,b,cc
2,aa,bb,cc
3,aaa,bbb,cc
4,aaaa,bbbb,cc
这与我想得到的结果不一样,不知道有什么好的解决办法没?请大家帮忙啊,另外关于sqlplus的一些set命令具体怎使用,在哪可以查到,能不能告诉一个学习的网址,谢谢~~~