Skip to content

[Ошибка] posgresql NUMERIC поля, "Unsupported type: NUMERIC" #79

@Alexvolt

Description

@Alexvolt

Описание ошибки
При обращении к базе данных 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions