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

PL/SQL Oracle Discussion :

Procédure pour remplir un dataset


Sujet :

PL/SQL Oracle

  1. #1
    CUCARACHA
    Invité(e)
    Par défaut Procédure pour remplir un dataset
    Salut

    Soit la PROC (Qui compile) :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    create or replace
    PROCEDURE XXXXXXX_EU_UTILISATEUR_GET (
        vCODE_USR IN VARCHAR2,
        cRESULTSET IN OUT globalPkg.RCT1,
        nRETURN_VALUE OUT NUMBER 
    )
    AS
    BEGIN
    nRETURN_VALUE := 0; 
    OPEN cRESULTSET FOR
        SELECT     
            CODE_USR, 
            NOM_USR, 
            PREN_USR, 
            TYPE_USR, 
            FAX_USR, 
            TEL_USR, 
            CODE_FCT, 
            ADRS_INF, 
            TLC_USR, 
            CODE_RP, 
            TYPE_HD, 
            CODE_SO, 
            CODE_DIV, 
            CODE_SIT, 
            CODE_DR, 
            CODE_DP, 
            CODE_SV, 
            CODE_RESP, 
            CODE_LOC, 
            CODE_BAT, 
            CODE_ETG, 
            ADRS_USR, 
            CP_USR, 
            VIL_USR, 
            CPS_USR, 
            USR_REMPL, 
            HD, 
            CHPAR1, 
            CHPAR2, 
            CHPAR3, 
            CHPAR4, 
            CHPAR5, 
            CHPAR6, 
            CHPAR7, 
            CHPAR8, 
            CHPAR9, 
            CHPAR10,
            HG_IDLEVELH,
            HG_IDLEVELG, 
            CODE_CTRCT,
            CHPAR11,
            CHPAR12,
            CHPAR13,
            CHPAR14,
            CHPAR15,
            MIDNAME,
            NICKNAME,
            VMAIL_USR, 
            PAGER_USR, 
            CIVILITE, 
            COM_USR, 
            ROWID
        FROM
            UTILISATEUR
        WHERE
            CODE_USR = vCODE_USR;
    END XXXXXXX_EU_UTILISATEUR_GET;
    Soit le code C#
    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
     
            public CL_DATA_Utilisateur(int Code_Utilisateur)
            {
                CHPAR = new List<string>();
                OracleConnection oConn = new OracleConnection(ConfigurationManager.ConnectionStrings["XXXXX_CS"].ConnectionString);
                oConn.Open();
                OracleCommand oCmd = new OracleCommand("XXXXXXX_EU_UTILISATEUR_GET", oConn);
                oCmd.Parameters.Add(new OracleParameter("vCODE_USR", intCodeToString(Code_Utilisateur, '0', 10)));
                OracleParameter oParam = new OracleParameter();
                oParam.ParameterName="cRESULTSET";
                oParam.OracleType= OracleType.Cursor;
                oParam.Direction = ParameterDirection.Output;
                oCmd.Parameters.Add(oParam);
                oCmd.Prepare();
                OracleDataAdapter oDA = new OracleDataAdapter(oCmd);
                DataSet oDS = new DataSet();
                oDA.Fill(oDS);
                this.CODE_USR = (string)oDS.Tables[0].Rows[0][CODE_USR];
                oConn.Close();
            }
    pour info :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            internal static string intCodeToString(int value, char frontFillWith, int totalLenght)
            {
                string strToReturn;
                strToReturn = value.ToString();
                int stringLenght = strToReturn.Length;
                strToReturn = new string(frontFillWith, totalLenght - stringLenght) + strToReturn;
                return strToReturn;
            }
    L'exec du C# me donne :

    Exception Details: System.Data.OracleClient.OracleException: ORA-01036: numéro/nom de variable interdit


    Source Error:


    Line 71: OracleDataAdapter oDA = new OracleDataAdapter(oCmd);
    Line 72: DataSet oDS = new DataSet();
    Line 73: oDA.Fill(oDS);
    Line 74: this.CODE_USR = (string)oDS.Tables[0].Rows[0][CODE_USR];
    Line 75: oConn.Close();

    Question :

    Ou est l'erreur ?

    D'avance merci

    Laurent

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    J’ai l’impression que t’appelle une procédure qui a 3 paramètres avec seulement 2 variables de binding.
    Petit conseil : une fois que t’es arrivé à compiler la procédure teste la d’abord sous sqlplus (SQL developper, TOAD, Pl/SQL developper, etc.) pour être certain que la proc est OK, et seulement après lance toi dans l’appel via C#

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/11/2014, 10h57
  2. [Débutant] Problème avec dataset pour remplir listbox
    Par lordsion dans le forum ASP.NET
    Réponses: 4
    Dernier message: 14/06/2011, 17h11
  3. Réponses: 6
    Dernier message: 16/09/2010, 23h04
  4. Procédure pour remplir table et sa table dérivée
    Par C_C dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/12/2005, 20h41
  5. [C#]Erreur pour remplir mon dataset
    Par liliprog dans le forum Windows Forms
    Réponses: 16
    Dernier message: 15/07/2005, 19h03

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