Как убрать пробел между знаком минус и числом в информатике
У меня есть проблема, где есть поле суммы, которая имеет такие данные, как (- 98765,00), минус {пробелы]{числа}?, мне нужно удалить пробел между минусом и числом и получить как (- 98765.00), Как мне сделать это в преобразовании выражения.
Тип данных поля десятичный (8,2).
Спасибо, Киран
3 ответа
output_port: TO_DECIMAL(REPLACECHR(FALSE,input_port,' ',''))
REPLACECHR заменяет пробелы пустым символом, по существу удаляя их. Первый аргумент может быть ИСТИНА / ЛОЖЬ, чтобы указать регистр или нет, но это не важно в этом случае.
Если мое понимание верно, вам нужно заменить оба spaces
и brackets
, Вот выражение:
TO_DECIMAL(
REPLACECHR(0,
REPLACECHR(0, '(- 98765.00)', ' ', '') -- this part does the space replacement
, '()', '') -- this part replaces the brackets
)
Ты можешь использовать REG_REPLACE
функция для замены пространства
Для этого вам необходимо выполнить следующие шаги,
* Создайте два переменных порта
* REG_REPLACE - функция требует строковый столбец, поэтому вам нужно преобразовать десятичный столбец в строковый столбец, используя функцию TO_CHAR
Первый переменный порт (строка) - TO_CHAR(column_name)
* В предыдущем порту данные преобразуются в строку, теперь снова преобразуйте их в десятичную и примените функцию REG_REPLACE
Второй переменный порт (десятичный) - to_decimal(reg_replace(first_variable_port,'s+',''))
s - определяет пробелы в регулярном выражении informatica
Смотрите изображение ниже,
используется тот же номер, который вы указали. Используйте тот же тип данных и функции
Отладчик дает точный результат, удаляя пустое пространство на изображении ниже,
Может быть, у вас есть проблема с другими преобразованиями, через которые вы проходите. Отладка и проверка данных один раз.
Надеюсь, вы поняли, любые вопросы не стесняйтесь спрашивать
Чтобы насладиться informatica, весело проведите время на https://etlinfromatica.wordpress.com/