IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Récupération de paramètre OUT d'une procédure stockée Oracle


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2004
    Messages
    378
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 378
    Points : 130
    Points
    130
    Par défaut Récupération de paramètre OUT d'une procédure stockée Oracle
    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.

  2. #2
    Membre habitué
    Inscrit en
    Septembre 2004
    Messages
    378
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 378
    Points : 130
    Points
    130
    Par défaut
    Petite précision ...
    Il s'agit bien d'un soucis de correspondance de type de variable entre NUMBER et VB.NET car les autres paramètres OUT en VARCHAR2 ne posent pas de problème en String.

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2004
    Messages
    378
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 378
    Points : 130
    Points
    130
    Par défaut
    Finalement, j'ai trouvé la solution sur un bloc anglais.

    Il faut en fait ne pas utiliser OracleDbType mais DbType

    Ce qui donne donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Imports Oracle.DataAccess.Types
    outCodeRetour.DbType = DbType.Int32
    Et ca marche impec'

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Pas de retour sur un paramètre output depuis une procédure stockée oracle
    Par darmet dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/07/2014, 14h47
  2. Réponses: 4
    Dernier message: 17/12/2007, 08h29
  3. Récupération de plusieurs tuples d'une procédure stockée
    Par rophi dans le forum Bases de données
    Réponses: 9
    Dernier message: 10/11/2007, 23h23
  4. Réponses: 1
    Dernier message: 27/08/2007, 17h40
  5. Réponses: 1
    Dernier message: 22/06/2006, 11h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo