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 :

Lancer une query sur 2 db


Sujet :

JDBC Java

  1. #1
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut Lancer une query sur 2 db
    Salut, est-ce possible en java de lancer une query comme celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT *
    FROM  MaBase.MonSchema.Matable
    EXCEPT
    SELECT *
    FROM  MOnAutreBase.MonSchema.Matable
    Comment gérer les 2 connexions?
    Pourquoi vouloir ré-inventer la roue...
    ...Surtout si c'est pour la faire carrée...

  2. #2
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Perso je ne pense pas que ca existe, une requete etant executé avec une connexion et une connexion ayant une URL, avec un driver, un user et un password il n'est je pense pas possible de faire ce que tu souhaites.

    ==> Ce n'est pas une certitude mais j'y crois vraiment pas.
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  3. #3
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Ce serait plutôt du coté du SGBD qu'il faudrait voire ça.

    Sybase le fait nativement (peut être SQLServer qui en est proche), tu peux jouer sur les synonymes avec Oracle, et ensuite pour les autres SGBD je ne sais guère
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  4. #4
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    Aie... Donc rien de jouable via java... C'est ce que je craignais... Je vais peut etre chercher du côté du pgplsql...
    Pourquoi vouloir ré-inventer la roue...
    ...Surtout si c'est pour la faire carrée...

  5. #5
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Non ce n'est pas ce que je disait, ce n'est pas au niveau du pgplsql mais au niveau configuration de ton serveur.

    Si tu peux envoyer la requête en SQL simple alors tu peux le faire en java
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je ne vois pas trop non plus si c'est faisable. Mais bon je suis pas un spécialiste.

    Je voulais simplement préciser que sous Oracle, j'aurai plutot considéré les DBLinks. Je crois que les synonyms ça concerne la vision d'infos sur le même schéma mais qui ne sont pas visibles par le user. Par contre les DBLinks permettent d'accèder à un autre schéma, même sur une autre machine. Par contre je crois que c'est restreint à des bases Oracle.

    Si jamais ça peut aider. Mais en effet ce qui me semble le plus probable c'est une seule connexion côté Java, et faire bosser les SGBD.

    Sinon selon la complexité de la chose j'ai déjà un truc similaire. Plutot que de me casser là tête j'ai fait ma première requête, ma seconde, et j'ai fait le diff à la main. C'est pas compliqué :
    - on implémente une méthode de recherche -> find()
    - on appelle con1.find() puis con2.find()
    - on définit des JavaBean pour stocker les résultats dans des List
    - on implémente comme il faut les méthodes equals() et hashCode() des JavaBean
    - on fait list1.removeAll(list2)
    et le tour est joué

  7. #7
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Arf j'ai encore confondu DBLink et synonyme... (ça fait un moment que je ne tourne plus que sous sybase où là même pas besoin de quoi que ce soit).

    Donc tout dépend du volume de données à ramener (dans le cas de requêtes de type décisionnel ça peut faire très mal niveau de ramener deux sets de données et de matcher ça en java alors qu'un group by bien senti ou une jointure bien faite te font économiser du volume et du temps, l'ensembliste c'est surpuissant quand c'est bien manié).

    Donc utiliser un DBLink peut être avantageux également

    Sinon un lien sur le forum postgres qui devrait répondre à ta question:

    http://www.developpez.net/forums/arc...hp/t-7562.html

    Le dblink existe bien sous postgres
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Comme je disais, selon la complexité de la chose.

    En tout cas si jamais il n'y a pas moyen de faire ce qui est demandé par Empty_Body, il a plusieurs propositions de contournement.

  9. #9
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    Je vous remercie pour toutes ces propositions. J'utilise déjà à l'heure actuelle une solution qui rapatrie le contenu des 2 db et fait la comparaison en java mais je voulais améliorer la chose. La première DB se trouve en local mais généralement, j'accède à la seconde db par VPN. Le problème est que lorsque je rappatrie une table de 5-6000 records, ça prend énormément de temps. Et c'est là que j'aimerais pouvoir améliorer les délais par des sql optimisés qui ne reprendraient que le stricte nécessaire.
    Pourquoi vouloir ré-inventer la roue...
    ...Surtout si c'est pour la faire carrée...

Discussions similaires

  1. lancer une fonction sur un lien
    Par PAYASS59 dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2006, 12h46
  2. je ne retrouve plus le lien pour lancer une recherche sur le forum
    Par harlock59 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 19/04/2006, 12h44
  3. [VBA-E]Ecrire et lancer une requete sur Access
    Par marie10 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/03/2006, 14h32
  4. [VBA-E]Lancer une macro sur changement de valeur cellule ?
    Par jeremiegrenoble dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/03/2006, 14h22
  5. lancer une application sur un autre pc local
    Par amireve dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 08/09/2005, 21h00

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