У меня в проге стоит
C++ (Qt)
db.setNumericalPrecisionPolicy(QSql::HighPrecision);
И все равно колонки типа NUMBER(5,2) в QT попадают как QVariant:String
А вот пример, работающий при любых системных настройках
C++ (Qt)
QSqlQuery query(db);
QChar delimiter = QLocale::system().decimalPoint();
QString qs = "ALTER SESSION SET NLS_NUMERIC_CHARACTERS = \"%1\"";
qs = (delimiter == '.' ? qs.arg(".,") : qs.arg(",."));
query.exec(qs);