Oracle - как удалить пробелы?

Вот мнемоника для запоминания 2 ** 31, вычтите единицу, чтобы получить максимальное целочисленное значение.

a = 1, b = 2, c = 3, d = 4, e = 5, f = 6, g = 7, h = 8, i = 9

Boys And Dogs Go Duck Hunting, Come Friday Ducks Hide
2    1   4    7  4    8        3    6      4     8

использовал способности от двух до 18 достаточно часто, чтобы помнить их, но даже я не удосужился запомнить 2 ** 31. Это слишком легко рассчитать по мере необходимости или использовать константу, или оценить как 2G.

9
задан JosephStyons 28 July 2009 в 17:59
поделиться

5 ответов

Похоже, вы выполняете запрос в sqlplus. Sqlplus должен гарантировать, что в интервале столбцов достаточно места, чтобы можно было отобразить максимальный размер строки (255). Обычно решение заключается в использовании параметров форматирования столбцов (Выполнить перед запросом:

12
ответ дан 4 December 2019 в 06:26
поделиться
SELECT  REGEXP_REPLACE('A B_ __ kunjramansingh smartdude', '\s*', '')
FROM    dual

---
AB___kunjramansinghsmartdude

Обновление:

Просто объедините строки:

SELECT  a || b
FROM    mytable
12
ответ дан 4 December 2019 в 06:26
поделиться

Если я правильно понимаю, это то, что вы хотите

select (trim(a) || trim(b))as combinedStrings from yourTable
5
ответ дан 4 December 2019 в 06:26
поделиться

Звучит как проблема с форматированием вывода? При использовании SQL Plus используйте команду COLUMN, подобную этой (при условии, что вы хотите, чтобы максимальная ширина отображения для каждого символа составляла 20 символов):

column a format a20
column b format a20
select a, b from mytable;
3
ответ дан 4 December 2019 в 06:26
поделиться

SQL Plus отформатирует столбцы так, чтобы они содержали максимальное возможное значение, которое в данном случае составляет 255 символов.

Чтобы подтвердить, что ваш вывод на самом деле их не содержит лишние пробелы, попробуйте следующее:

SELECT
  '/' || TRIM(A) || '/' AS COLUMN_A
 ,'/' || TRIM(B) || '/' AS COLUMN_B
FROM
  MY_TABLE;

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

Однако наиболее вероятный сценарий состоит в том, что символы '/' на самом деле коснутся остальных ваших строк, тем самым доказывая, что пробел на самом деле обрезано.

Если вы хотите вывести их вместе, то это должен сделать ответ, данный Квассной.

Если это чисто проблема отображения,

1
ответ дан 4 December 2019 в 06:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: