как бороться с конечными пробелами, используя oracle sql select - PullRequest
1 голос
/ 18 августа 2011

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

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

info 1: info 2: info 3

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

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

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

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

Ответы [ 3 ]

1 голос
/ 18 августа 2011

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

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

Пример:

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

Если это соответствует вашим требованиям к данным, это заменит вкладки пробелами (или любой символ, который вы упомянули вместо * 1008)*)

1 голос
/ 18 августа 2011

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

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

Дает:

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

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

0 голосов
/ 18 августа 2011

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

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

...