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

Langage SQL Discussion :

Test de select sur une base


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut Test de select sur une base
    Bonjour
    j'ai un serveur java qui peut accueillir des lien à des centaines de bases de données.

    Jusqu'à maintenant je n'avais que des base Oracle. et sur le serveur j'ai une procédure de test qui tente d'éxécuter
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT 1 FROM DUAL;
    pour cela je prends une connexion dans le pool et j'exécute la query.
    si j'ai une réponse ok tous va bien.
    si quelque chose ne fonctionne pas je sais d'où ça vient (pool, connexion, droit d'exécuter des query etc.)

    Hors aujourd'hui par simple déclaration sur le serveur on peut ajouter des base de tout type.
    et là
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT 1 FROM DUAL;
    ne fonctionne pas toujours.

    Je cherche un moyen en fonction du driver de déterminer la bonne requête à exécuter.
    Je n'ai pas le droit de modifier les base. seulement le code du testeur.

    notez que je me moque de la requête seul importe le fait de pouvoir l'exécuter.

    merci de votre aide.
    A+JYT

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    DUAL est une table par défaut spécifique à Oracle. C'est d'ailleurs une aberration dans le sens ou il ne devrait rien exister par défaut dans une base.

    Vous pouvez faire un test comme SELECT 1 AS C qui est supporté en principe pas tous les autres SGBDR.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    merci

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 639
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    DUAL est une table par défaut spécifique à Oracle. C'est d'ailleurs une aberration dans le sens ou il ne devrait rien exister par défaut dans une base.

    Vous pouvez faire un test comme SELECT 1 AS C qui est supporté en principe pas tous les autres SGBDR.

    A +
    Le truc c'est que la clause SELECT attend une clause FROM dans le cas où les éléments recherchés ne sont pas des constantes
    Certains SGBD dont ORACLE, mais aussi DB2 exigent une table même dans le cas de constantes, ça simplifie la syntaxe qui reste la même dans tous les cas, mais nécessite du coup une table bidon, même vide
    Pour ORACLE c'est DUAL qui s'y colle, MYSQL accepte DUAL ou pas de clause FROM
    Pour DB2 c'est SYSIBM.SYSDUMMY1

    De nombreux SGBD-R ne requièrent aucune table dans ce cas particulier

  5. #5
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    sinon, une requête qui devrait passer sur n'importe quel SGBDR :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT  1 FROM INFORMATION_SCHEMA.TABLES

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    une requête qui devrait passer sur n'importe quel SGBDR
    J'apprécie l'emploi du conditionnel
    Cela devrait fonctionner à condition que la version du SGBDR ne soit pas trop ancienne et que l'éditeur ait jugé utile de se mettre à niveau avec la norme.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    merci à tous je crains d'être obligé de maintenir un dictionnaire par sgbd.

    @aieeeuuuuu cela vaut pour une application pas pour une infra.
    Je ne sais absolument pas quelles sont les tables qui sont dans ces base et il est bon de ne pas le savoir.

    C'est un peu comme un rar sur un JEE le but c'est de pouvoir faire un ping un peu évolué.

    Je peux la jouer bourin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select 1 as test;
    select 1 as test from dual;
    select 1 as text from SYSIBM.SYSDUMMY1;
    etc jusqu'à en trouver un qui marche
    et du coup si aucun marche le diganostic du test est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    loaddriver => ok
    pool       => ok
    connexion  => ok
    querry     => na
    merci à vous.

    A+JYT

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Bonjour,

    sinon, une requête qui devrait passer sur n'importe quel SGBDR :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT  1 FROM INFORMATION_SCHEMA.TABLES

    Non, pas dans Oracle qui n'a jamais voulu implémenter les vues normalisées...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  9. #9
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    pourquoi je n'ai pas le bouton pour marquer la discussion resolue ?

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

Discussions similaires

  1. SQL select like ne fonctionne pas sur une base csv
    Par MisterJeanP dans le forum MkFramework
    Réponses: 2
    Dernier message: 07/08/2014, 22h19
  2. Réponses: 10
    Dernier message: 11/07/2008, 08h50
  3. test sur une base vide
    Par supersoft5 dans le forum C++Builder
    Réponses: 2
    Dernier message: 30/04/2007, 09h49
  4. Réponses: 5
    Dernier message: 26/02/2007, 01h50
  5. Test des liens vide sur une base de données
    Par FLANQUART Marie dans le forum ASP
    Réponses: 1
    Dernier message: 10/11/2005, 14h35

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