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 :

Du PL/SQL dans du code Java


Sujet :

JDBC Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Du PL/SQL dans du code Java
    Bonjour,
    Est il possible d'executer du PL/SQL dans du code java.
    Exemple:
    PreparedStatement pstmt = con.prepareStatement(PL/SQL);
    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    Si tu veux executer une procedure sql :
    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
    //on prépare
    			CallableStatement stUser = null;
    			stUser = con.prepareCall("{call ajout_employe(?,?,?,?,?,?,?,?,?,?,?,?,?)}");
     
    			//on passe les paramètres a la procedure stockée
    			stUser.setInt(1, this.code);
    			stUser.setString(2, this.nom);
    			stUser.setString(3, this.prenom);
    			stUser.setString(4,this.date_naiss);
    			stUser.setString(5, this.lieu_naiss);
    			stUser.setString(6, this.adresse);
    			stUser.setString(7,this.cp);
    			stUser.setString(8, this.ville);
    			stUser.setString(9, String.valueOf(this.num_tel));
    			stUser.setString(10,this.secteur);
    			stUser.setString(11,this.fonction);
    			stUser.setInt(12,id_grade);
    			stUser.setString(13,this.tauxOccupation);
     
    			//on execute la procedure stockée
    			stUser.executeUpdate();

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    Je me suis mal exprimé, dans mon projet on souhaite pas stocker le procedures dans la base Oracle, donc la seule possibilité est d'executer le code PL/SQL dans mes classe java par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    stmt.execute(" BEGIN"+
    "INSERT INTO clients (no_cli, nom_cli, ville_cli)"+
    "VALUES (seq_noclient.NEXTVAL, p_nom, p_ville);"+
    "COMMIT ;"+
    "END;"
    );

  4. #4
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    Je pense que ca doit être possible.
    Tu as essayé au moins ?

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Oui, j 'ai eu des erreurs de syntaxe au niveau du code PL/SQL

  6. #6
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Ah oui mais ca c'est un probleme de PL/SQL pas de Java alors.

  7. #7
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Citation Envoyé par tikiwine
    "INSERT INTO clients (no_cli, nom_cli, ville_cli)"+
    "VALUES (seq_noclient.NEXTVAL, p_nom, p_ville);"+
    "COMMIT ;"+
    "END;"
    );
    - les begin, commit et end ne sont pas nécessaires
    - comme c'est un insert tu peux faire un executeUpdate au lieu de execute
    - il n'y a pas d'espace entre ville_cli) et VALUES ça ne peut pas marcher
    - c'est du SQL pur (pas vraiment PL/SQL), un PreparedStatement suffit

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Le code PL/Sql que j'ai écrit c'etait juste pour l'exemple, le vrai code il y a pas mal d'nstruction PL voici une partie:

    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
    30
    31
    32
    33
    34
    v_clob_temp       CLOB;
        v_end_offset      INTEGER := 1;
        v_start_offset    INTEGER := 1;
        v_occurence       NUMBER := 1;
        v_replace_len NUMBER := length(p_replace);
        v_clob_temp_len   NUMBER := 0;
        v_dest_clob_len    NUMBER := 0;
      BEGIN
        IF dbms_lob.ISOPEN(p_dest_clob) = 0 THEN
          NULL;
        END IF;
        dbms_lob.createtemporary(v_clob_temp, TRUE, dbms_lob.session);
        LOOP
          v_end_offset := dbms_lob.instr(p_dest_clob, p_search, 1, v_occurence);
          IF v_end_offset = 0 THEN
            v_clob_temp_len := dbms_lob.getlength(v_clob_temp);
            v_dest_clob_len  := dbms_lob.getlength(p_dest_clob) - v_start_offset + 1;
            IF v_dest_clob_len > 0 THEN
              dbms_lob.copy(v_clob_temp,
                            p_dest_clob,
                            v_dest_clob_len,
                            v_clob_temp_len + 1,
                            v_start_offset);
            END IF;
            EXIT;
          END IF;
          v_clob_temp_len := dbms_lob.getlength(v_clob_temp);
          IF (v_end_offset - v_start_offset) > 0 THEN
            dbms_lob.copy(v_clob_temp,
                          p_dest_clob,
                          (v_end_offset - v_start_offset),
                          v_clob_temp_len + 1,
                          v_start_offset);
          END IF;

  9. #9
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    ok ba effectivement comm l'a dit BiMouXeTTe c'est plus une question de PL/SQL

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    eeee.... a quoi ca peut servir de mettre une procedure dans java?

    Je comprend pas pourquoi tu la ferais pas sur oracle et tu l'appelerais sur java : : :

  11. #11
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    C'est peut etre pour creer une base dynamiquement

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Points : 110
    Points
    110
    Par défaut
    Dans ce cas il créerait une procédure dynamiquement alors?

    Ah oué ok , j'avais pas pensé a ca...

  13. #13
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Si c'est une procédure toute faite, il est plus propre de la mettre dans un .sql.

Discussions similaires

  1. appel d'une vue pl/sql dans du code java
    Par coolcoolcool dans le forum Général Java
    Réponses: 5
    Dernier message: 08/09/2010, 13h49
  2. Requête sql dans un code java
    Par RouRa22 dans le forum JDBC
    Réponses: 3
    Dernier message: 18/11/2008, 15h56
  3. copier une requête sql dans un code java
    Par Smix007 dans le forum Langage
    Réponses: 2
    Dernier message: 05/04/2008, 15h14
  4. Réponses: 5
    Dernier message: 03/08/2007, 12h52
  5. Comment savoir la table SQL utilisée dans un code JAVA ou JSP
    Par soror dans le forum Persistance des données
    Réponses: 6
    Dernier message: 03/08/2007, 11h27

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