Задать вопрос
@maxwolf

Конвертация NUMBER в типы otl: как?

При выполнении SELECT в otl4 (среда OCI/Oracle 11) и попытке получить типы возвращаемых данных через describe_select, поля базы типа NUMBER otl описывает в otl_column_desc.otl_var_dbtype как otl_var_double (при этом, значение otl_column_desc.prec == 0 и otl_column_desc.scale == 129, смысл чего от меня ускользает...)
Получается неопределённость: даблом представляются и поля, заведомо не имеющие дробной части (ID типа NUMBER), и поля, которые потенциально дробную часть содержать могут (AMOUNT типа NUMBER).
Как бы наиболее правильно, и с наименьшими накладными расходами, различить эти два случая? Т.е. если я считал из стрима double v, что писать в CheckInt(v) для того, чтобы правильно работал код

if (CheckInt(v)) 
 printf("%.0f", v);
else
 printf("%.2f, v);


P.S. Можно еще передать в CheckInt() otl_column_desc, но, насколько я понимаю, толку от этого не прибавится...
  • Вопрос задан
  • 2623 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@maxwolf Автор вопроса
Отвечу сам себе: ключевые слова set_all_column_types/set_column_type и, заодно, для create_stored_proc_call есть параметр all_num2type
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы