2011-12-16 3 views
1

Я хотел бы написать запрос, чтобы его результат был хорошо сформированным текстом. Каждый из его столбцов будет содержать определенное количество символов, если значение столбца, возвращаемое запросом, меньше, чем количество столбцов символов, остальные символы будут сообщены как «0», если столбец представляет число или «», если столбец представляет строку. Является ли это возможным?Маска столбца PL/SQL с фиксированным числом символов в запросах

Спасибо,

Тьяго

+4

Лично я бы обрабатывал проблемы с отображением/форматированием, как это, в слое презентации, а не в базе данных. –

+0

@JoeStefanelli - Согласовано. Попытка форматировать материал в базе данных - это корень всех видов зла. Таким образом, это безумие, с такими вещами, как многозначные столбцы. –

+1

звучит как форматирование отчета о старой школе. Как о файле с разделителями вывода (csv) и открыть в Excel? Просто мысль. Менеджмент любит свой Excel ;-) – tbone

ответ

1

Ну, эксперты предупреждали вас против него, но вот это:

select case when REGEXP_replace (DUMP (varchar2_column), '^Typ=(\d+).*', '\1') = 1 then lpad(varchar2_column, 10, ' ') 
      else null end varchar2_column, 
     case when REGEXP_replace (DUMP (number_column), '^Typ=(\d+).*', '\1') = 2 then lpad(number_column, 10, 0) 
      else null end number_column 
    from table 

типы данных (от свалки): http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements001.htm#BABCGCHG

регулярные выражения оракула: http://docs.oracle.com/cd/B19306_01/appdev.102/b14251/adfns_regexp.htm

Я бы опубликовал ссылку на функцию дампа, но моя репутация, ну, хорошо ... Вы можете использовать Google.

Смежные вопросы