2015-11-19 3 views
0

Предположим, что у меня есть таблица, в которой в качестве примера строки вида:Создание строки из ЗЕЬЕСТ

ID PAYMENT_BASE PAYMENT_A PAYMENT_B PAYMENT_C PARTNER_ID TRANSFER_TITLE 
1  123.0   15.12  30   15.91  123456  null 

Теперь я хотел бы создать строку на основании данных, приведенных в таблице, и UPDATE колонка TRANSFER_TITLE.

Что я ожидаю иметь в TRANSFER_TITLE выглядит следующим образом:

123,00-PA 15,12-PB 30,00-PC 15,91/123456 

То, что очень важно: число в формате 10 должно быть 10,00. Число в формате 12.1 должно быть в формате 12.10, а число в формате 12.12 должно оставаться неизменным, но только точка заменена запятой - 12,12 ...

Возможно ли это в Oracle?

ответ

2

Прежде всего:

Как получить данные в TRANSFER_TITLE

update table 
set TRANSFER_TITLE = ID || PAYMENT_BASE || PAYMENT_A || PAYMENT_B || PAYMENT_C || PARTNER_ID 

Для форматирования чисел возвращения двух или более десятичных знаков я хотел бы сделать что-то вроде: to_number(to_char(PAYMENT_BASE), 2)

Если вам нужно измените запятую на точку, введите числовые поля в varchar, а затем выполните REPLACE(TRANSFER_TITLE, '.',',')

Надеюсь, что это произойдет Помогите.

+0

Спасибо, работал частично, но у меня нет абсолютно никакой идеи, как заменить точки с запятой в столбце TRANSFER_TITLE. Теперь все правильно, но я не знаю, как обновить столбец запятыми ... – dziki

+0

, если у вас есть правильные данные в TRANSFER_TITLE, тогда вы можете сделать набор таблиц обновлений TRANSFER_TITLE = TRANSFER_TITLE.replace (',', '. ') –

+0

Я получил ошибку SQL: ORA-00904: «TRANSFER_TITLE». «REPLACE»: недопустимый идентификатор 00904. 00000 - «% s: недопустимый идентификатор» '- TRANSFER_TITILE является' VARCHAR2 (200 BYTE) '... – dziki

0

Попробуйте это:

update table set TRANSFER_TITLE = replace(to_char(PAYMENT_BASE, 'fm9999999.90'),'.',',') || '-PA ' 
|| replace(to_char(PAYMENT_A, 'fm9999999.90'),'.',',') || '-PB ' 
|| replace(to_char(PAYMENT_B, 'fm9999999.90'),'.',',') || '-PC ' 
|| replace(to_char(PAYMENT_C, 'fm9999999.90'),'.',',') || '/' || PARTNER_ID 
Смежные вопросы