как работать с конечными пробелами с помощью оператора выбора Oracle sql

Я импортировал табуляцию с разделителями в Excel. У меня есть столбец с типом данных VARCHAR2 (255), выгруженный из базы данных Oracle.

Данные, отформатированные в столбце, содержат данные, которые выглядят следующим образом: (значения, разделенные двоеточиями)

info 1: info 2: info 3

После импорта файла на лист Excel у меня есть несколько записей, в которых возникла проблема с форматированием. Обычно пробелы между двоеточиями вызывают проблемы с вкладками.

Плохая запись будет выглядеть так. Запись импортируется, но данные в таблице не выровнены.

info<...whitespace here...>1: info 2: info 3

Есть ли способ в синтаксисе Oracle, sql, чтобы я мог каким-то образом выбрать этот столбец и удалить встроенные пробелы, чтобы он не нарушил мой импорт вкладок?


person jdamae    schedule 17.08.2011    source источник
comment
I've imported a .csv file that is tab delimited. звучит сбивающе с толку. Это файл с разделителями-запятыми (csv) или с разделителями-табуляциями? Кроме того, проблема заключается в экспорте данных в Excel - верно?   -  person ring bearer    schedule 18.08.2011


Ответы (3)


Это просто указатель. Если я вас правильно понял, вы хотите заменить табуляцию (\ t) на в выбранном столбце пробелами (\ b), чтобы импорт с разделителями табуляции работал в Excel.

Вы можете использовать функцию замены, чтобы удалить вкладку. (или любой другой символ, если это применимо)

Пример:

SELECT REPLACE(YOUR_COLUMN_NAME,CHR(9),' ') FROM ...

Предполагая, что это соответствует вашим требованиям к данным, это заменит табуляцию пробелами (или любым символом, который вы упоминаете вместо ' ')

person ring bearer    schedule 17.08.2011

Это может сработать для вас:

SELECT regexp_replace('info    :1 info 2: info 3','[[:space:]]{2,}', ' ') FROM dual;

Дает:

информация: 1 информация 2: информация 3

Предполагая, что вы хотите оставить один пробел между 'info' и ':'

person DCookie    schedule 17.08.2011

проблема: Basically white spaces in between colons

Если «данные» (я использую этот термин вольно, учитывая тот мусор, с которым вы работаете) не содержат пробелов, вы можете использовать функцию замены, чтобы заменить ПРОБЕЛ на «» (пустая строка) в UDF. Или вы можете заменить все экземпляры SPACE: COLON и COLON: SPACE на COLON.

person Tim    schedule 17.08.2011