我在查询下运行使用shell脚本从oracle获取数据。
set heading off;
set COLSEP ",";
set echo off;
set FEEDBACK off;
set pages 0;
set tab off;
set linesize 10000;
SELECT nvl(lpad(ID1,9,' '),' '),
ID2,
lpad(ID3,11,' '),
nvl(ID4,' ')
FROM ENTMST.T_DB_ENTITY;
quit;
获得如下输出。
197329691 ,197329691, 197329691 ,197329691
例如,第3列lpad对于值197329691正常工作,但之后我得到了额外的空间。我怎么能删除那些?
答案 0 :(得分:1)
为每列添加别名:
SELECT NVL(LPAD(ID1,9,' '),' ') ID1,
ID2 ID2,
LPAD(ID3,11,' ') ID3,
NVL(ID4,' ') ID4
FROM ENTMST.T_DB_ENTITY;
在select语句之前设置sql plus列宽:
COL id1 FORMAT A9
COL id2 FORMAT A9
COL id3 FORMAT A9
COL id4 FORMAT A9
答案 1 :(得分:0)
RTRIM( lpad(ID3,11,' '))