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

C# Discussion :

[c#/java/PL-SQL] mapping création d'OBJECT oracle , OBJET C# OBJET java


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Points : 68
    Points
    68
    Par défaut [c#/java/PL-SQL] mapping création d'OBJECT oracle , OBJET C# OBJET java
    Bonjour,

    je cherche à appeler une procédure stocké oracle qui prend en paramètre une collection d'Objet de type ORACLE. Cette collection de type etant défini comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    create or replace TYPE "MONTYPE"     AS OBJECT
    (
      Prop1 varchar2(255),
      Prop2 varchar2(255),
      Prop3 varchar2(255),
      Prop4 varchar2(255)
    )
     
    create or replace "ListOfMonType"  IS TABLE OF "MONTYPE"
    En Java , il est possible de créeer un type equivalent au type Oracle de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    StructDescriptor desc1=StructDescriptor.createDescriptor("MONTYPE",conn);
    ArrayDescriptor desc2=ArrayDescriptor.createDescriptor("ListOfMonType",conn);
    Le type java "StrucDescriptor" correspond au type Oracle "MONTYPE" et le type java "ArrayDescriptor" correspond au type Oracle ListMontype".

    Je voudrais savoir s'il existe un equivalent pour mapper les types Oracle "MONTYPE" et "ListOfMonType" vers le langage c# comme cela existe pour le langage java.

    Je precise que la fameuse collections est à passer en tant que paramètres d'entrée d'un procédure stockée oracle et que c'est n'est pas une collection de type de base Oracle.

  2. #2
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 102
    Points : 68
    Points
    68
    Par défaut
    En réalité , ce que je voulais faire n'est pas faisable avec une version de client oracle inférieur à la version 11 qui fonctionne très bien avec un server oracle 9.2.

    Pour ce faire, il faut utiliser "ODP.Net 11g" téléchargeable sur le site d'oracle.
    A l'installation du client oracle 11g des exemples vont être installés sur votre disque dans un sous répertoire [UDT] du répertoire HOME de l'installation.

    Pour réussir à faire cela, il faut s'inspirer des deux projets suivant :
    Object2.csproj et VArray.csproj.

    En installant ce client 11g, vous aurez a votre disposition de nouvelle propriété pour l'enumération OracleDbType et notamment la possiblité de définir des collections avec OracleDbType.Array.

    De plus lors de la création d "OracleParameter", vous aurez accès à une propriété "UdtTypeName" qui vous permettra de préciser qu'un paramètre d'entrée/sortie" d'appel à un procédure est un User Data Type Oracle.

    Pour le reste , il faut créer un custom object oracle et mapper ses propriétés avec celle du User Data Type (montrer dans les exemples).


    Je vous laisse le soin de regarder les exemples qui sont très bien fait.

    Voila.

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

Discussions similaires

  1. Java Collection Map<String, Map<String,List<Object>>
    Par Malatok dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 17/08/2011, 15h07
  2. Communication JAVA & PL/SQL
    Par Titouf dans le forum PL/SQL
    Réponses: 1
    Dernier message: 12/01/2006, 11h18
  3. java et sql server
    Par vijeo dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 28/10/2005, 10h57
  4. [JDBC]Eclispe java et sql 2000
    Par vijeo dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 27/10/2005, 12h31
  5. Réponses: 2
    Dernier message: 06/10/2004, 19h09

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