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
У меня есть эта часть кода в моем пакете, к которому обращаются Crystal Reports ... всякий раз, когда я экспортирую данные, он не дает мне 10 пробелов на моем ELSE (вложенные одинарными кавычками), когда у записи нет даты holiday_Date. Где я ошибся?Как добавить пустое место в oracle pl sql
Это делает генерировать пространства, так что-то еще (Кристалл, предположительно) является лишая их. Сохраняет ли левое заполнение в LeaveType? Хотя пару нот; во-первых, вы можете посмотреть на [альтернативный механизм цитирования] (http://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements003.htm#SQLRF00218), поэтому вам не нужно вручную одинарные кавычки, что делает его более читабельным и простым в автономном режиме. Во-вторых, пустая строка такая же, как и NULL в Oracle, поэтому или пример 'nvl (edt.leave, '')' ничего не добивается. Вы могли бы это упростить. –