Bonjour,

Je suis sous VB2008 et Oracle 11g en utilisant "ODTwithODAC1110720"
J'ai une procédure stockée Oracle qui retourne plusieurs valeurs du type Oracle Number. Cette procédure fonctionne très bien quand je l'utilise dans Oracle.

Quand je veux l'utiliser dans VB, j'ai un message d'erreur :
La conversion du type 'OracleDecimal' en type 'Integer' n'est pas valide.
Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
With cmdProcedure
    .Connection = Me.SessionOracle
    .CommandType = CommandType.StoredProcedure
    .CommandText = "pkg_connexion.ouvrir_connexion"
 
    ' je passe la partie IN
 
    ' Paramètre OUT
    Dim outCodeRetour As OracleParameter = New OracleParameter
    outCodeRetour.OracleDbType = OracleDbType.Int32
    outCodeRetour.Direction = ParameterDirection.Output
    outCodeRetour.ParameterName = "onum_CODE_RETOUR"
    .Parameters.Add(outCodeRetour)
End With
 
' Exécution de la procédure
cmdProcedure.ExecuteNonQuery()
 
Dim intCodeRetour As Integer = CInt(cmdProcedure.Parameters("onum_CODE_RETOUR").Value)
' c'est cette ligne qui me génère l'erreur
J'ai essayé différentes conversion mais ca ne fonctionne pas, même la conversion en type .NET System.Decimal
Pouvez-vous m'aider ?
Merci bien.