如何在oracle pl sql中添加空格

时间:2016-03-18 07:37:35

标签: sql oracle plsql oracle-sqldeveloper crystal-reports-2008

 SELECT lpad(nvl(substr(to_char(nvl(edt.leave,'''')),1,10),'''') || nvl(decode(leave_time,null,'''',
 decode(edt.leave_time,''P'',''-PM'',''-AM'')),''''),10,'' '') LeaveType,
 CASE WHEN substr(to_char(rh.holiday_date,''dd/MM/yyyy''),1,10) IS NOT NULL THEN
      substr(to_char(rh.holiday_date,''dd/MM/yyyy''),1,10)
      ELSE
      ''          ''
      END HolidayDate, FROM TABLE

我的包中有代码的一部分,可以通过水晶报告访问...每当我导出数据时,它都不会给我带来我的ELSE上的10个空格(用单引号括起来)当记录没有'假期十几点我哪里出错了?

2 个答案:

答案 0 :(得分:1)

使用rpad()函数

rpad(' ',9)

http://www.techonthenet.com/oracle/functions/rpad.php

答案 1 :(得分:0)

如果您使用的是水晶报告,请不要操纵查询中的所有内容,请尝试以下操作:

更改此类查询...而不是日期中的case语句在查询中采用日期列并在Crystal报表中进行操作。

 SELECT lpad(nvl(substr(to_char(nvl(edt.leave,'''')),1,10),'''') || nvl(decode(leave_time,null,'''',
 decode(edt.leave_time,''P'',''-PM'',''-AM'')),''''),10,'' '') LeaveType,
 rh.holiday_date FROM TABLE

现在在水晶报告中采用公式@Date并写下代码:

if IsNull(Cdate(rh.holiday_date))
then "          " //Adding 10 spaces
else Cdate(rh.holiday_date)

现在运行并导出报告