-
-
Notifications
You must be signed in to change notification settings - Fork 65
Closed
Description
Описание ошибки
При обращении к базе данных posgresql через метод OPI_PostgreSQL.ВыполнитьЗапросSQL() к полям, у которых тип данных numeric(15,2), возвращается следующее значение «Unsupported type: NUMERIC».
Это осознанное поведение, баг или недоработка? Возможно ли добавить поддержку типа?
При преобразование в float (::float - ниже есть пример) возвращает все нормально.
Воспроизведение
Создаем проблемную таблицу:
CREATE TABLE public.testnumeric (
column1 numeric(15, 2) NULL
);
insert into public.testnumeric values(100.22);
select testnumeric.column1 as okField from public.testnumeric as testnumeric
Получаем данные:
СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(ИмяСервера, ИмяБазы, Логин, Пароль, Порт);
Соединение = OPI_PostgreSQL.ОткрытьСоединение(СтрокаПодключения);
ТекстЗапроса = "select testnumeric.column1::float as okField from public.testnumeric as testnumeric";
ТекстЗапроса = "select testnumeric.column1 as okField from public.testnumeric as testnumeric";
Результат = OPI_PostgreSQL.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
Закрытие = OPI_PostgreSQL.ЗакрытьСоединение(Соединение);
ЗапросВыполнен = Результат.Получить("result");
Если ЗапросВыполнен = Неопределено Тогда
ЗапросВыполнен = Ложь;
КонецЕсли;
ТекстОшибки = Результат.Получить("error");
Если Не ЗапросВыполнен Тогда
Сообщить(ТекстОшибки);
Иначе
МассивДанных = Результат.Получить("data");
КоличествоСтрок = МассивДанных.Количество();
Сообщить("Запрос выполнен! (Количество строк: " + КоличествоСтрок + ")");
Если КоличествоСтрок > 0 Тогда
Сообщить(МассивДанных[0]["okfield"]);
КонецЕсли;
КонецЕсли;
В сообщениих выводит:
Запрос выполнен! (Количество строк: 1)
Unsupported type: NUMERIC
Ожидаемое поведение
Возвращает 100.22 как и в первом из запросов, где преобразуем в ::float
Платформа и конфигурация
8.3.25.1560
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels