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 :

Passer une fonction Oracle à un PreparedStatement


Sujet :

JDBC Java

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Passer une fonction Oracle à un PreparedStatement
    Bonjour,

    nous avons une base Oracle, que nous attaquons avec des programmmes Java utilisant JDBC. Dans cette base, Oracle, nous avons une fonction Oracle "sysdate_appli" qui retourne la sysdate de l'appli.

    Lors de l'insertion d'enregistrement, nous utilisons des PreparedStatement. Nous avons une chaine d'insertion qui resemble à cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    REQ_INS = "INSERT INTO MYTABLE (COL1, COL2, COL_TYPE_DATE) VALUES (?, ?, ?)"
    Mise à jour de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PreparedStatement prepStmt = myConnexion.prepareStatement(REQ_INS_);
    prepStmt.setString(1, "VAL_COL1");
    prepStmt.setString(2, "VAL_COL1");
    prepStmt.setDate(3, Date);
    je souhaiterai passer sur la troisième instruction ma fonction Oracle. Est-ce possible ? Les résultat sur une requête SQL devant être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO MYTABLE (VAL_COL1, VAL_COL2, sysdate_appli)
    Merci d'avance
    [ Modéré par vedaer ]
    -> Ajout du tag dans le titre
    -> Ajout des balises code
    [ Merci de respecter les Règles du Forum ]

  2. #2
    Membre émérite
    Avatar de Ioan
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 737
    Points : 2 999
    Points
    2 999
    Par défaut
    Bonjour,
    As tu regardé les libs Oracle fournies avec les drivers (cf. types spécifiques) ?
    Le 3 ème critère que tu veux passer est-il assimilable à un type déjà défini dans JDBC ?
    Ce troisième critère est il une fonction/procedure ?
    As tu essayé avec des Callable Statement ?
    As tu essayé un appel SQL "pur" à partir de jdbc ?

    Bref, pas de solution , mais juste des pistes. As tu une réponse précise à chacune de ces questions ?
    Bonne chance.
    @+
    Les FAQs Java, J2EE, JDBC, Struts > Les cours > Le Forum Java.
    Merci de respecter les règles du club.
    Mon blog : quelques news sur Java, Linux et le monde de l'Open Source.

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Essaye simplement ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    REQ_INS = "INSERT INTO MYTABLE (COL1, COL2, COL_TYPE_DATE) VALUES (?, ?, sysdate_appli)" 
     
    PreparedStatement prepStmt = myConnexion.prepareStatement(REQ_INS_);
    prepStmt.setString(1, "VAL_COL1");
    prepStmt.setString(2, "VAL_COL1");
    a++

  4. #4
    Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    As tu regardé les libs Oracle fournies avec les drivers (cf. types spécifiques) ?
    Oui, et je n'ai rien trouvé.

    Le 3 ème critère que tu veux passer est-il assimilable à un type déjà défini dans JDBC ?
    Même réponse que précédente.

    Ce troisième critère est il une fonction/procedure ?
    Oui, c''est une fonction Oracle.


    As tu essayé avec des Callable Statement ?
    Non, je ne vois pas comment.

    As tu essayé un appel SQL "pur" à partir de jdbc ?
    Qu'appelles-tu un appel SQL pur ? Peux-tu me donner un exemple ?

    Merci pour ta réponse.

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par adiGuba
    Salut,

    Essaye simplement ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    REQ_INS = "INSERT INTO MYTABLE (COL1, COL2, COL_TYPE_DATE) VALUES (?, ?, sysdate_appli)" 
     
    PreparedStatement prepStmt = myConnexion.prepareStatement(REQ_INS_);
    prepStmt.setString(1, "VAL_COL1");
    prepStmt.setString(2, "VAL_COL1");
    Merci. Mes méthodes n'étaient pas prévues pour cela, mais en les modifiant, cela fonctionne effectivement.

    Merci beaucoup.

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

Discussions similaires

  1. Comment passer une fonction en argument
    Par Pades75 dans le forum Langage
    Réponses: 4
    Dernier message: 16/02/2006, 10h34
  2. Réponses: 5
    Dernier message: 23/10/2005, 17h34
  3. Passer une fonction en paramètre ...
    Par Freeze dans le forum C++Builder
    Réponses: 2
    Dernier message: 14/10/2005, 16h51
  4. [Conception] Passer une fonction en paramètre
    Par pejay dans le forum Langage
    Réponses: 9
    Dernier message: 09/12/2004, 13h58
  5. Passer une fonction comme argument à une fonction
    Par Cocotier974 dans le forum Général Python
    Réponses: 4
    Dernier message: 29/06/2004, 13h41

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