[8i][forms 6i] résultat arrondi par EXEC_SQL ?
Bonsoir,
Malgré mes recherches et sûrement à cause des heures sup' je ne trouve pas la cause d'un problème que j'imagine assez trivial.
Dans une unité de programme sous forms 6i, je souhaite effectuer un calcul basique :
<OPERANDE_1> <OPERATEUR> <OPERANDE_2>
sachant que les valeurs de ces 3 éléments sont stockés dans des variables
L'utilisation d'un curseur provoque une ORA-06502 et EXECUTE IMMEDIATE ne fonctionne pas sous forms (ou sous cette version ou bien encore parce que je débute)
Par conséquent, j'utilise le package EXEC_SQL :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| ...
LConn_conn_id := EXEC_SQL.DEFAULT_CONNECTION;
LCu_b0337 := EXEC_SQL.OPEN_CURSOR(LConn_conn_id);
LC_sql_stmt := 'SELECT ' || LN_an1_montant1 || LC_t37_symbolcal || LN_an1_montant2 || ' FROM DUAL';
EXEC_SQL.PARSE(LConn_conn_id, LCu_b0337, LC_sql_stmt);
EXEC_SQL.DEFINE_COLUMN(LConn_conn_id, LCu_b0337, 1, LN_resultat_calcul);
LI_nIgn := EXEC_SQL.EXECUTE(LConn_conn_id, LCu_b0337);
WHILE ( EXEC_SQL.FETCH_ROWS(LConn_conn_id, LCu_b0337) > 0 ) LOOP
EXEC_SQL.COLUMN_VALUE(LConn_conn_id, LCu_b0337, 1, LN_resultat_calcul);
END LOOP;
EXEC_SQL.CLOSE_CURSOR(LConn_conn_id, LCu_b0337);
EXEC_SQL.CLOSE_CONNECTION(LConn_conn_id);
... |
La requête s'exécute correctement mais je ne comprends pas pourquoi le résultat est systématiquement un entier alors que je lui fournis des réels.
Ex : SELECT 10.5 + 2.7 FROM DUAL retournera 12 au lieu de 13.2
Où est mon erreur ?
Merci.