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 :

appel d'une fonction oracle à partir d'un programme java


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2017
    Messages : 5
    Par défaut appel d'une fonction oracle à partir d'un programme java
    salu les amis !!!

    je n'arrive pas à appeler ma fonction oracle à partir de mon programme java tout en mettant les donnees retournées dans un tableau (jtable), suis debutant dans cet environement.

    voilà ma fonction créée sous oracle
    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
    CREATE TYPE ANNEE_OBJ IS OBJECT (t_idannee NUMBER,t_annee VARCHAR(15));
    CREATE TYPE ANNEE_TAB IS TABLE OF ANNEE_OBJ;
     
    CREATE OR REPLACE FUNCTION liste_annee RETURN ANNEE_TAB
    IS
        L_annee ANNEE_TAB := ANNEE_TAB();
        n INTEGER :=0;
    BEGIN
        FOR AN IN (SELECT IDANNEE,ANNEE FROM TANNEE)
        LOOP
            L_annee.EXTEND;
            n := n+1;
            L_annee(n) := ANNEE_OBJ(AN.IDANNEE,AN.ANNEE);
        END LOOP;
        RETURN L_annee;
    END;
    je compte sur votre aide !

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Quel en serait l'intérêt? Cette procédure fait simplement un select tout con et stocke le résultat dans un objet. Fait simplement directement le select à partir de java et parcours les résultats . Je comprend l'intérêt d'une procédure stockée si elle fait un gros boulot business, mais là cette procédure j'ai franchement du mal à voir ce qu'elle apporte comme fonctionnalité.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2017
    Messages : 5
    Par défaut
    je sais ça n'a pas de sens, mon grand j'ai juste pris un exemple sur la liste des années en esperant trouver une solution à mon probléme.
    j'ai un projet qui demande des requetes compexes, et l'ennui c'est que les procedures et fonctions sont une exigence pour ce projet notre professeur d'administrateur base des données oracle dit qu'il ne voudrait pas voir une requete sql dans l'environement java, de se servir à l'appel des procedures et fonctions oracle. et pense que si quelqu'un m'aide avec cette fonction qui retourne la liste des annees en le stockant dans un jtable je pourrai m'ensortir avec mon projet....

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Coté java, tu peux nous montrer ce que tu as commencé? où ça coince?
    Parce que nous ne sommes pas là pour faire tes devoirs mais de t'aider.

    A+.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2017
    Messages : 5
    Par défaut
    voilà ce que j'ai fait :
    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
    import javax.swing.JOptionPane;
    import java.sql.*;
    import javax.swing.table.DefaultTableModel;
     
    Connexion maConnexion= new Connexion();
    DefaultTableModel model=new DefaultTableModel();
    model.addColumn("ID Année");
    model.addColumn("Année");
     
    String requeteListeLots="? = call liste_annee";
     
    try
    		{
                            CallableStatement call=maConnexion.obtenirConnexion().prepareCall(requeteListeLots);
                            call.registerOutParameter(1, Types.VARCHAR);
                            call.execute();
    			model.addRow(new Object[] {call.getString(1)});
    			tblannee.setModel(model);
     
    		}
    		catch(SQLException ex)
    		{
                            System.out.println(ex);
    		}
    obtenirConnexion() est une fonction java de la classe Connexion que j'ai crée

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par catib Voir le message
    l'ennui c'est que les procedures et fonctions sont une exigence pour ce projet notre professeur d'administrateur base des données oracle dit qu'il ne voudrait pas voir une requete sql dans l'environement java
    C'est bien malheureux. Bon les contraintes que t'as reçu sont ce qu'elles sont, mais ce n'est pas comme ça qu'on est censé faire en java, ...en général... C'est une méthodologie à la mainframe pour des très très grosse boites. Peu d'application jouent avec ça a tendance à complexifier la maintenance du code.


    Citation Envoyé par catib Voir le message
    String requeteListeLots="? = call liste_annee";
    Pour faire un call, c'est le format
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "{ ? = call liste_annee }"
    Note les accolades manquantes dans ton code.
    Citation Envoyé par catib Voir le message
    call.registerOutParameter(1, Types.VARCHAR);
    Vu que ta méthode oracle te retourne un array d'objets super pas pratiques, ça va pas passer dans un varchar. Je mettrais ARRAY comme type JDBC. Et toute la problématique après sera d'extraire ce que jdbc aura foutu dans cet Array. A tester, je parierais pour des Struct.

    Bref t'es parti pour la gloire des fonctions jdbc que presque personne n'utilise


    Au passage j'ai trouvé ceci pour savoir comment mapper des objets oracles vers des objets java https://docs.oracle.com/cd/B10501_01...ot.htm#1039529 si ça peu te servir

Discussions similaires

  1. Réponses: 27
    Dernier message: 23/04/2008, 18h11
  2. Appel d'une fonction Oracle dans Impromptu
    Par snoozette dans le forum Cognos
    Réponses: 2
    Dernier message: 19/10/2007, 15h28
  3. Appel d'une fonction Oracle dans Impromptu
    Par snoozette dans le forum Oracle
    Réponses: 0
    Dernier message: 04/10/2007, 19h42
  4. appel d'une fonction php à partir d'un bouton
    Par Jesmar dans le forum Langage
    Réponses: 2
    Dernier message: 27/04/2007, 19h07
  5. Réponses: 4
    Dernier message: 28/07/2006, 14h01

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