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

JDBC Java Discussion :

[JDBC]passer un tableau d'entier à une procédure stockée


Sujet :

JDBC Java

  1. #1
    Invité
    Invité(e)
    Par défaut [JDBC]passer un tableau d'entier à une procédure stockée
    Bonjour,

    tout est dans le titre .

    Je ne sais pas comment faire, merci

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 480
    Points
    3 480
    Par défaut
    Bonjour,

    As-tu essayé avec un setObject ?
    K

  3. #3
    Invité
    Invité(e)
    Par défaut
    oui j'ai essayé mais cela ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CallableStatement st = null;
    st = conn.prepareCall("{call pak_coraly.pu_pme_validite(?, ?)}");
    st.setObject(1, new int[] {1,2,3});
    exception sur la ligne st.setObject :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.sql.SQLException: Type de colonne non valide
    : :

  4. #4
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    peut-on connaître comment est déclarée ta procédure?
    Bien le bonjour chez vous
    Jowo

  5. #5
    Invité
    Invité(e)
    Par défaut
    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
     
    PROCEDURE PU_PME_VALIDITE(in_liste_id_pme		IN Tab_id_pme,
                            	in_nbr_pme     		IN NUMBER)
    IS
    BEGIN
     
    	operation := 'PU_PME_VALIDITE';
     
      UPDATE PME_VALIDITE
         SET VALIDITE = 1;
     
    	FOR i_indice IN 1..in_nbr_pme LOOP
     
          UPDATE PME_VALIDITE
             SET VALIDITE = 0
           WHERE PME_ID = in_liste_id_pme(i_indice);
     
    	END LOOP;
     
    	COMMIT;
     
    EXCEPTION
    	WHEN OTHERS THEN
    		ROLLBACK;
    		numero_erreur := SQLCODE;
    		message_erreur := SUBSTR(SQLERRM, 1, 100);
    		trace_erreur(numero_erreur, message_erreur, interface, operation);
    		raise_application_error(-20200, 'Erreur PAK : consultez les avertissements');
    END PU_PME_VALIDITE;
    Il y a un type crée (Tab_id_pme) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TYPE Tab_id_pme IS TABLE OF PME_VALIDITE.PME_ID%TYPE INDEX BY BINARY_INTEGER;
    EN java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CallableStatement callStmt = null;
    callStmt = conn.prepareCall("{call pak_coraly.pu_pme_validite(?, ?)}");
     
    callStmt.setObject(1, new int[] {1,2,3});
    callStmt.setInt(2, compTablePMEIgnores.getTable().getValues().size());
     
    callStmt.executeUpdate();
    log.debug("jButtonValider_actionPerformed() - update PME VALIDITE - call pu_pme_validite(int[], int)");

  6. #6
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    Salut,

    Si vous trouvez je veux bien connaitre la solution. Le setArray qui devrait normalement permettre de passé un type tableau de fonctionne pas.

    Le setObject non plus, car il attend un tableau.

  7. #7
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    J'ai trouvé un exemple sur la toile A Demonstration of the oracle.sql.ARRAY Class
    Bien le bonjour chez vous
    Jowo

  8. #8
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 480
    Points
    3 480
    Par défaut
    Interessant, merci pour le lien !
    K

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/03/2014, 12h16
  2. Réponses: 2
    Dernier message: 13/05/2008, 14h13
  3. Passer en paramétre un tableau dans une procédure stockée
    Par killysui dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/04/2006, 11h47
  4. Passer un tableau à une procédure stockée
    Par biroule dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/09/2004, 18h21

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