I've to store numbers, in Pro*C, with big precision (like 839299299383473.4385794) over then 16 significative digits in a Number column of anOracle TAble.
The problem is the C Host variable which has to contain the number to INSERT in Oracle table in a column like NUMBER(28.8).
If I use C double type, I lost precision and the number 839299299383473.4385794 arrive in Oracle table like 839299299383473.43565879 with casual last digit.
I tried long double C data type, but the insert statement gives me the error :"ORA-03115: unsupported network datatype or representation".
The unique solution I found was to use a C char * variable (a classic string value) to contain the value and, in the insert statement, convert it into NUMBER (e.g. TO_NUMBER(REPLACE(string_number, '.',',')) ). In this way work correctly, but I can't make any calculation in C on the number, because it's in stored in a string variable
Somebody knows the solution? Which kind of Pro*c type variable can I use to comunicate with oracle to store big number?