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

Oracle Discussion :

[SQLPLUS] - Problème de Triggers Java


Sujet :

Oracle

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [SQLPLUS] - Problème de Triggers Java
    Bonjour,
    je suis un débutant en Oracle.

    J'ai installé Oracle 10 sur ma machine (Linux Mandrake 10.1) en suivant un tuto du web.

    Aucun problème, j'ai crée un utilisateur Oracle qui gère le SGBD

    Je me connexte à ma base depuis un session Oracle comme celà :
    - je lance la base de donnée (depuis sql plus : startup)
    - toujours depuis ma session sous l'utilisateur Oracle je lance un terminal puis passe à l'utilisateur christophe (su chirstophe).
    - sous 'christophe' sqlplus christophe/MOTDEPASSE

    Tout marche OK (création, lecture, suppression de tables.)

    Sauf quand je veux utiliser un trigger !

    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
    -- Compile la classe TP.java
    ! javac triggers_relationnel.java
     
    -- Charge la classe dans le schéma de base de données
    ! loadjava -u christophe/MOTDEPASSE ./triggers_relationnel.class -resolve
     
    -- Crée la procédure SQL/Oracle associée à la méthode NiveauPlongeur
    create or replace procedure VerifierNiveau (idPlongeurIns varchar2 ,idPlongeeIns varchar2)
    as language java 
    name 'triggers_relationnel.VerifierNiveau(java.lang.String , java.lang.String)';
    /
     
    --Associe le trigger à un ajout/modification dans Inscription
    create or replace trigger InsModTupleInscr
    after insert or update of idPlongeurIns , idPlongeeIns on Inscriptions
    for each row
    call VerifierNiveau(:new.idPlongeurIns, :new.idPlongeeIns)
    /

    qui utilise un fichier java qui contient la méthode :

    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
    public static void VerifierNiveau(java.lang.String idPlongeur, java.lang.String idPlongee)
        throws SQLException, ClassNotFoundException
      { 
        // Chargement du pilote Oracle  
        Class.forName("oracle.jdbc.driver.OracleDriver");
     
        // Connexion externe à une BD Oracle, identification
        Connection conn = DriverManager.getConnection
          ("jdbc:default:connection:");
     
        // Déclaration d'une requête SQL
        Statement req = conn.createStatement ();
     
    		// Déclaration d'une requête SQL
        Statement req2 = conn.createStatement ();
     
        // Niveau requis pour la plongee
        ResultSet niveauPlongee = req.executeQuery
          ("Select niveauRequis From Plongees Where idPlongee = '"+idPlongee +"'");
    quand j'execute le code sql j'obtient l'erreur :

    errors : class triggers_relationnel
    ORA-29521: impossible de trouver le nom référencé java/lang/StringBuilder
    The following operations failed
    class triggers_relationnel: resolution
    exiting : Failures occurred during processing

    Mais la procédure et le déclencheur sont quand même crées...

    Quand j'insère des tuples dans la taple concernée par le trigger je recois un message d'erreurs.

    Le fichier java compile parfaitement mais impossible de le charger !! je pense qu'il s'agit d'un problème de variable d'envirronement...

    Je précise que le meme code marche parfaitement à la Fac, donc ça vient forcément de mon installation et pas du code...

    Voilà si vous avez des idées
    (j'espère avoir été clair)

    Merci,
    Christophe

    Message édité par Orafrance, merci d'utiliser les outils du forum qui facilitent la lecture :twisted:

  2. #2
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 81
    Points : 69
    Points
    69
    Par défaut
    vous devez mettre le chemin complet de l'archive qui contient StringBuilder dans le classepath

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour l'info mais je ne sais pas où est située cette archive !

    un petit tuyau ?

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    et pourquoi ne pas simplement rechercher le fichier sur les disques ?

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Ca ne donne rien !!


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    -------------------------
    [  root || product  || € ] find / -name StringBuilder
    find: /proc/6147/task: No such file or directory
    find: /proc/6150/task: No such file or directory
     
    -------------------------
    [  root || product  || € ] find / -name String
    find: /proc/6147/task: No such file or directory
    find: /proc/6150/task: No such file or directory

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    bah c'est peut-être ça le problème...

  7. #7
    Candidat au Club
    Inscrit en
    Juin 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    C'est bon ça marche...

    Le problème venait du fait que la version de java installée avec Oracle était la 1.4.2 et celle installée sur ma machine la 1.5.0...

    StringBuilder est une nouveauté de la 1.5.0 donc Oracle ne la conaissait pas.

    J'ai donc désintallé java sur la machine et réinstallé la 1.4.2 (j'avait d'abord modifié mon mon PATH pour qu'il pointe vers la version 1.4.2 dans le repertoire d'Orcale mais ça a échoué (?) )

    Ce qui est étrange c'est que je n'utilise pas cet objet dans mes méthodes...

    voilà merci à vous pour m'avoir aiguiller !!

    :-)

  8. #8
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Merci pour le retour

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

Discussions similaires

  1. [debutant][Applet] problèmes insertion applet java
    Par mlequim dans le forum Applets
    Réponses: 5
    Dernier message: 11/07/2005, 09h50
  2. [9i] problème avec trigger after logon
    Par Michael# dans le forum Oracle
    Réponses: 2
    Dernier message: 17/03/2005, 12h14
  3. [Interbase6] Problème de triggers
    Par emeraudes dans le forum Bases de données
    Réponses: 4
    Dernier message: 08/03/2005, 09h52
  4. [PL/SQL] problème de trigger
    Par Chuck67 dans le forum Oracle
    Réponses: 14
    Dernier message: 09/12/2004, 23h17

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