Разделитель преобразования реального типа Postgresql

#sql #postgresql #type-conversion

#sql #postgresql #преобразование типов

Вопрос:

Postgresql не может автоматически преобразовывать данные с плавающей запятой, поступающие из удаленной таблицы, в формат «1,1»

Я пытаюсь подключить db2 и postgresql, используя некоторые расширения fdw. Теперь я использую odbc_fdw, но odbc всегда возвращает типы с плавающей запятой в формате «1,1», а postgresql может использовать только точку в качестве разделителя. могут быть какие-либо настройки postgresql или конфигурации odbc?

 SELECT CAST('1,01000000E 1' as real);
 

Код ошибки 22P02. Неправильный синтаксис для типа real

Я ожидаю автоматического преобразования строк типа «1,1» в float с использованием cast. Я думаю, что без этого я не смогу использовать внешние таблицы с плавающими типами данных

Комментарии:

1. любая причина, по которой вы не можете просто select cast(replace('1,01000000E 1', ',', '.') as real);

Ответ №1:

вы могли бы сделать

 SELECT string_to_array('1,01000000E 1', ',')::real[]
 

Комментарии:

1. результат странный, и мне нужно, чтобы postgres мог изначально конвертировать в rel с разделителем через запятую