Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблемы с типом money и новым симоволом рубля. / 15 сообщений из 15, страница 1 из 1
01.10.2015, 00:55
    #39065699
tortilka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с типом money и новым симоволом рубля.
Добрый день!
В БД есть таблицы с полями типа money. При переносе БД с Windows 8.1 на Windows server 2008 R2, посредством восстановления из backup вылетает ошибка "ERROR: invalid input syntax for type money...". на обоих машинах стоит PostgreSQL 9.2. настройки сервера одинаковые, значение lc_monetary = "Russian_Russia.1251" на обоих серверах. Единственное различие в региональных настройках ОС на Windows server 2008 обозначение денежной единицы "р.", а на Windows 8.1 "новый символ рубля"(р. с черточкой) я думаю, что дело все в этом. Но не знаю как это исправить? Подскажите пожалуйста способ, но не в обход, вроде переустановите систему, или поменяйте тип данных на int, или перед backup поменяйте значение lc_monetary на доллары или евро , а после восстановления обратно. Заранее спасибо.
...
Рейтинг: 0 / 0
01.10.2015, 11:25
    #39065924
grufos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с типом money и новым симоволом рубля.
tortilka,

так, как многое вы уже отсекли :)
то у вас остается единственный путь - изменить региональные установки windows для русской локали на тот символ рубля, который стоит у вас в файле бэкапа (т.е. windows где бэкап создавался).
...
Рейтинг: 0 / 0
01.10.2015, 12:00
    #39065966
roadster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с типом money и новым симоволом рубля.
...
Рейтинг: 0 / 0
01.10.2015, 12:24
    #39066010
tortilka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с типом money и новым симоволом рубля.
grufostortilka,

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

Спасибо. мы пробовали изменить региональные настройки на символ рубля (для всех учетных записей). Это не решило проблемы восстановление из backup все равно выдает ошибки. Но в тех таблицах на Windows 8.1 где тип money вместо "?" появился "р.". Но наша основная задача поднять backup с Windows 8.1 на Win server 2008 (у заказчика)
...
Рейтинг: 0 / 0
01.10.2015, 12:46
    #39066038
tadmin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с типом money и новым симоволом рубля.
tortilka,
Можно поменять везде тип с money на numeric, сделать dump-restore а потом обратно.
Но лучше всего отказаться от money, если приложение позволяет. Это очень неприятный тип данных, лучше с ним дело не иметь вовсе.
...
Рейтинг: 0 / 0
01.10.2015, 19:23
    #39066456
tortilka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с типом money и новым симоволом рубля.
tadmintortilka,
Можно поменять везде тип с money на numeric, сделать dump-restore а потом обратно.
Но лучше всего отказаться от money, если приложение позволяет. Это очень неприятный тип данных, лучше с ним дело не иметь вовсе.
Спасибо. Тогда подскажите самый предпочтительный тип в PostgresSQL для валюты (строго рубли) - numeric? Просто кто что советует. Есть однозначный ответ именно для рублей?
...
Рейтинг: 0 / 0
01.10.2015, 19:27
    #39066458
tortilka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с типом money и новым симоволом рубля.
roadstertortilka,

https://support.microsoft.com/ru-ru/kb/2970228

Спасибо, наверно это бы решило проблему, но к сожалению клиент не позволяет устанавливать никакие патчи. Либо это должно пройти очень длинный и долгий пусть согласования, бюрократия как она есть .... А надо быстро решить проблему.
...
Рейтинг: 0 / 0
02.10.2015, 11:24
    #39066855
roadster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с типом money и новым симоволом рубля.
tortilkaк сожалению клиент не позволяет устанавливать никакие патчипечально.
но я бы попробовал сочинить письмо.
...
Рейтинг: 0 / 0
02.10.2015, 11:26
    #39066857
roadster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с типом money и новым симоволом рубля.
tortilkaЕсть однозначный ответ именно для рублей?а какая разница?
числовой тип с плавающей точкой, рассмотреть на вопрос округления до интересующего количества символов после запятой, возможность и необходимость хранения фиксированного количества таких символов, внимательно оценить логику работы приложения в плане отображения сумм и их подсчёта.
...
Рейтинг: 0 / 0
02.10.2015, 12:07
    #39066934
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с типом money и новым симоволом рубля.
roadstertortilkaЕсть однозначный ответ именно для рублей?а какая разница?
числовой тип с плавающей точкой, рассмотреть на вопрос округления до интересующего количества символов после запятой, возможность и необходимость хранения фиксированного количества таких символов, внимательно оценить логику работы приложения в плане отображения сумм и их подсчёта.float OR double precision НЕ хранят фиксированного числа символов. [Ибо не хранят "символов" вообще]. они хранят приближение числа -- порядок и мантиссу.


поэтому для денег [чтобы не суммировать в агрегатах дребезг в мантиссах ] рекомендуют фиксированные типы -- в случае PG -- NUMERIC.
...
Рейтинг: 0 / 0
02.10.2015, 12:13
    #39066943
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с типом money и новым симоволом рубля.
roadster,
долго вспоминал, где вас видел -- так вы же тот самый диагност с недоумком на фоточке в акке.
"печально я смотрю на ваше по колено"
...
Рейтинг: 0 / 0
02.10.2015, 15:06
    #39067202
roadster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с типом money и новым симоволом рубля.
qwwqfloat OR double precision НЕ хранят фиксированного числа символов. [Ибо не хранят "символов" вообще]. они хранят приближение числа -- порядок и мантиссу.нумерик постгресный тоже наверняка не хранит символов (это же не строковый тип), я имел в виду что требуется взять не целочисленный тип (кстати я видел, что некоторые хранят всё в бигинте в виде копеек или даже копейки с рублями отдельно), а так как в типах ПГ я не силён я и не стал писать конкретные рекомендации.

ЗЫ а если я в профиль фото голой задницы выложу, вам станет веселее?
...
Рейтинг: 0 / 0
02.10.2015, 15:35
    #39067235
vyegorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с типом money и новым симоволом рубля.
tortilka,

Ваш дамп базы либо уже в SQL-формате, либо же его можно преобразовать к таковому посредством `pg_restore`.
Также можно выделить команды для восстановления только одной таблицы (ключ -L).

Откройте дамп и найдите место, где восстанавливается ваша таблица и данные (команда COPY + ряд строк с данными + завершающая последовательность `\.`). Поделитесь определением таблицы и командой COPY с несколькими проблемными записями.
...
Рейтинг: 0 / 0
02.10.2015, 17:57
    #39067347
p2.
p2.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с типом money и новым симоволом рубля.
tortilka перед backup поменяйте значение lc_monetary на доллары или евро , а после восстановления обратно.а почему нет?!
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
F:\>set PGOPTIONS=-c lc_monetary=Russian_Russia.1251

F:\>psql -c "copy(select 123::money) to stdin;" postgresql://localhost/postgres postgres
123,00р.

F:\>set PGOPTIONS=-c lc_monetary=English_US.1251

F:\>psql -c "copy(select 123::money) to stdin;" postgresql://localhost/postgres postgres
$123.00
...
Рейтинг: 0 / 0
06.10.2015, 11:17
    #39069119
tortilka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы с типом money и новым симоволом рубля.
p2., Спасибо я попробую.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Проблемы с типом money и новым симоволом рубля. / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]