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 :

Comment passer les paramètres de type XMLTYPE à un procédure oracle ?


Sujet :

PL/SQL Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 19
    Points : 22
    Points
    22
    Par défaut Comment passer les paramètres de type XMLTYPE à un procédure oracle ?
    Bonjour tout le monde,
    J'ai un gros problème et je n'ai toujours pas trouvé la solution.

    En fait, j'ai une application C#.net qui travaille avec une base d'Oracle.

    Dans ma base, j'ai une table qui contient un colonne XMLTYPE pour sauvegarder les données xml.

    Mais, je ne sais toujours pas commment passer les paramètres de type XMLTYPE à un procédure oracle depuis l'application C#.

    Pourriez vous m'aider,si vous savez faire. C'est assez urgent.

    Je vous remercies en avance.

    Zhiwei

    voici mon procédure stockée.

    PROCEDURE Update_Factory
    (
    p_Id_Factory IN FCT_FACTORY.PK_FCT_ID%TYPE :=-1,
    p_Id_Transf IN FTF_FACTORY_TRANSF.PK_FTF_ID%TYPE,
    p_DateBegin IN FCT_FACTORY.FCT_DATEBEGIN%TYPE,
    p_DateEnd IN FCT_FACTORY.FCT_DATEEND%TYPE,
    p_Request IN FCT_FACTORY.FCT_REQUEST%TYPE := NULL,
    p_Response IN FCT_FACTORY.FCT_RESPONSE%TYPE := NULL,

    p_Code_State IN STA_STATE.PK_STA_CODE%TYPE,
    p_io_cursor IN OUT t_cursor
    )
    IS

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 19
    Points : 22
    Points
    22
    Par défaut Résolu
    Bon
    J'ai déjà résolu le problème moi-même.
    Comme je suis communiste, je vous partage la solution

    D'abord, côté .net faut importer namespace Oracle.DataAccess.Client au lieu de System.Data.OracleClient.

    Voici les codes qui sont pas compliqués à comprendre.

    Oraclecon = new OracleConnection("Data Source=TRANSCODE_LIU;User Id=DEV_LIU;Password=vueshTor");

    Oraclecon.Open();

    OracleXmlType cxml = new OracleXmlType(Oraclecon, "<dd>2</dd>");

    OracleCommand cmd = new OracleCommand("PCK_FACTORY.Update_Factory", Oraclecon);
    cmd.CommandType = CommandType.StoredProcedure;
    OracleParameter MonParametre;

    MonParametre = cmd.Parameters.Add("p_Id_Factory", OracleDbType.Int64);
    MonParametre.Value = 0;

    MonParametre = cmd.Parameters.Add("p_Id_Transf", OracleDbType.Int64);
    MonParametre.Value = 0;

    MonParametre = cmd.Parameters.Add("p_DateBegin", OracleDbType.Date);
    MonParametre.Value = DBNull.Value;

    MonParametre = cmd.Parameters.Add("p_DateEnd", OracleDbType.Date);
    MonParametre.Value = DBNull.Value;



    MonParametre = cmd.Parameters.Add("p_Request", OracleDbType.XmlType);
    MonParametre.Value = cxml;


    MonParametre = cmd.Parameters.Add("p_Response", OracleDbType.XmlType);
    MonParametre.Value = DBNull.Value;


    MonParametre = cmd.Parameters.Add("p_Code_State", OracleDbType.NVarchar2);
    MonParametre.Value = "CD_ATTEND";

    MonParametre = cmd.Parameters.Add("p_io_cursor", OracleDbType.RefCursor);
    MonParametre.Direction = ParameterDirection.Output;

    dr = cmd.ExecuteReader();
    dr.Read();
    textBox1.Text = "TRUE";

    Bonne chance à tous

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/07/2013, 10h09
  2. Réponses: 9
    Dernier message: 27/07/2010, 14h30
  3. Réponses: 2
    Dernier message: 25/08/2008, 14h11
  4. Réponses: 2
    Dernier message: 20/10/2006, 08h23

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