I have encountered a problem when trying to convert between NUMBER(10) data type of Oracle DB and int(soci::dt_integer). The problem is that the integer range is within NUMBER(10) although NUMBER(10) is actually dt_long_long.
When I try to convert values using soci type conversions [values.get<int>()
] it gives an exception when the column type is NUMBER(10). And if I change it to values.get<long long>()
data writing cannot be done to a NUMBER(6 or so) types.
These conversion are working correctly when calling soci session statements directly. But it is not working when I try to try a custom type conversion for a class.
When I try to read the column data type, a soci_error "Rowset is empty" is thrown. Have anyone encountered this problem?
Thanks.