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 :

[JDBC][9i] Impossible de lire un tableau dans le PL/SQL...


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    aze
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Antilles Néerlandaises

    Informations professionnelles :
    Activité : aze

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Points : 49
    Points
    49
    Par défaut [JDBC][9i] Impossible de lire un tableau dans le PL/SQL...
    Bonjour à tous !

    Ca va faire bientôt deux journées que je tourne en rond sur ce pb et je commence naturellement à en avoir marre !
    Je n'arrive pas à accéder aux éléments d'une liste passée en paramètre à une procédure stockée !!!

    J'aimerais tout bêtement passer un tableau de String à une procédure stockée dans Oracle. Le tableau n'aura pas tout le temps la même longueur, donc j'ai créé un type nested table sur toute la base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE OR REPLACE TYPE STRINGARRAY2 IS TABLE OF VARCHAR(64);
    Jusque là OK.

    Voici la partie PL/SQL :
    - le header du package en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PROCEDURE maProc	(colEquip IN STRINGARRAY2);
    - le body :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PROCEDURE maProc	(colEquip IN STRINGARRAY2) IS
    BEGIN
    Pck_Utilitaire.ado_Add_Erreur('ii',colEquip.COUNT||'-- '
    ||colEquip(colEquip.FIRST)||' --'||colEquip.FIRST||'--'
    ||colEquip.LAST,NULL,ERR_TRAITEMENT);
    COMMIT;
    END;
    La procédure ado_Add_Erreur ne fait qu'écrire dans une table.

    J'utilise Java et JDBC pour me connecter à Oracle. Voici la partie Java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     /*j'initialise tout bien avant avec les classes Oracle et pas les génériques*/
    String[] equip=new String[4];
    equip[0]="coucou";
    equip[1]="coicoi";
    equip[2]="coacoa";
    equip[3]="coecoe";
    oracle.sql.ArrayDescriptor descriptor = oracle.sql.ArrayDescriptor.createDescriptor("STRINGARRAY2", con);
    oracle.sql.ARRAY array = new ARRAY (descriptor, con, equip);
     
    String sql="{call MON_SCHEMA.MON_PACKAGE.maProc(?)}";	
    OracleCallableStatement  req=(OracleCallableStatement) con.prepareCall(sql);
    req.setArray(1, array);
    req.execute();
    La procédure s'exécute correctement, mais voila ce que je trouve dans la table : En bref je n'arrive pas à accéder aux éléments de ma liste... J'ai essayé de boucler sur la liste, je n'arrive à accéder à aucun élément.
    J'ai aussi testé en 8i et le comportement est le même...

    J'ai loupé une étape dans l'initialisation ?
    Vous voyez un problème quelque part ?

    J'espère que j'ai été clair !
    Merci d'avance !

  2. #2
    Membre du Club
    aze
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Antilles Néerlandaises

    Informations professionnelles :
    Activité : aze

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Bon, j'ai testé avec un tableau d'entiers à la place d'un tableau de strings, et ça passe sans soucis... Je suis un peu paumé, si quelqu'un a une idée !...

  3. #3
    Membre du Club
    aze
    Inscrit en
    Mars 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Antilles Néerlandaises

    Informations professionnelles :
    Activité : aze

    Informations forums :
    Inscription : Mars 2007
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Bon, c'était un problème d'encodage.
    Mon java sort de l'UTF8... J'ai changé VARCHAR2 en NVARCHAR2 et ça passe.

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

Discussions similaires

  1. [PHP 5.4] Impossible de lire un tableau d'objets stocké dans $_SESSION
    Par Leilou dans le forum Langage
    Réponses: 2
    Dernier message: 02/11/2013, 12h43
  2. Lire un tableau dans un fichier externe
    Par calidor dans le forum Fortran
    Réponses: 5
    Dernier message: 18/03/2009, 13h25
  3. Impossible de lire l'image dans HTML Help WorkShop
    Par Magdix dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 17/10/2008, 13h12
  4. Impossible de lire un tableau public
    Par mustang-ffw02 dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 28/09/2008, 12h38
  5. Réponses: 4
    Dernier message: 10/04/2008, 17h54

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