У меня есть столбец, из которого я должен извлечь строку, а затем отформатировать ее обратно в формате валюты США с двумя десятичными знаками.
Например: Значение столбца: {tag}0000020000890|
Из этого я должен сопоставить тег и извлечь 20000890 и отформатировать его в 200,008.90
Я извлек часть с кодом ниже:
LTRIM(REGEXP_SUBSTR('match pattern', 1,1,'i',,1), '0')
Где образец соответствия is '\{tag\}(.*?)\|'
С этим я могу извлечь 20000890
И затем я попробовал приведенные ниже функции to_char и to_number сверху, чтобы отформатировать как разделенную запятыми валюту с двумя десятичными знаками баллов.
to_char(ltrim(Regexp_substr('match pattern',1,1,'i',1),'0'), '99G999G999D99')
Но это выдает ошибку ниже:
Sql ошибка -20447, sqlstate 22007 sqlerrm c 99G999G999D99 Sysibm.Varchar-format
Тогда я попытался,
to_char(to_number(ltrim(Regexp_substr('match pattern',1,1,'i',1),'0')), '99G999G999D99')
Но это также выдает ошибку:
Sql Ошибка -20476, sqlstate 22018 sqlerm c DECFLOAT_FORMAT; 99G999G999D99
Я не уверен, что вызывает эту ошибку.