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

Administration Oracle Discussion :

Problème avec la table DUAL


Sujet :

Administration Oracle

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Points : 24
    Points
    24
    Par défaut Problème avec la table DUAL
    Bonjour,

    J'ai un petit souci avec une de mes bases, sur laquelle l'utilisation de la table DUAL pour évaluer une expression ne marche pas. Je m'explique, si vous exécutez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select 1 + 1 from dual;
    vous devez obtenir 2.
    Et bien là, j'obtiens Null. L'expression n'est pas évaluée.
    La table existe et est bien créée dans le schéma SYS et il y a bien un grant to public.

    Je n'ai jamais rencontré ce genre de problème, quelqu'un a t-il une idée ?
    Merci d'avance pour vos idées.

  2. #2
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    je suis prêt à parier qu'un select * from dual vous retournera null ...

    ça pue le delete from dual !
    ==> base HS.

    c'est grave ou vous pouvez la recréer ?

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par jleg
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select 1 + 1 from dual;
    j'obtiens Null.
    quel est ton outil? peux-tu reproduire ce phénomène dans sqlplus?

    Même un delete dual ne devrait pas retourner null, au pire, 0 row(s) returned, mais pas null

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Attention, ne pas essayer de faire un DELETE DUAL pour vérifier, merci

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    moi je suspecte qu'un outil style toad retourne NULL lorsque la base n'est pas démarrée ou l'utilisateur déconnecté

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par laurentschneider
    Attention, ne pas essayer de faire un DELETE DUAL pour vérifier, merci
    Justement Laurent, peux-tu me dire quel serait l'état de ma base après :
    - DELETE FROM DUAL
    - TRUNCATE TABLE DUAL
    ?
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  7. #7
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Inutilisable.

    Tout à fait possible que tu ne puisses plus démarrer ta base. ça dépendra de ta version et de ton horoscope

  8. #8
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par LeoAnderson
    je suis prêt à parier qu'un select * from dual vous retournera null ...
    Gagné (logique à priori)

    Citation Envoyé par laurentschneider
    moi je suspecte qu'un outil style toad retourne NULL lorsque la base n'est pas démarrée ou l'utilisateur déconnecté
    La base est bien démarrée et l'utilisateur bien connecté. J'utilise Toad effectivement (c'est peut-être l'affichage). Sous sqlplus, j'obtiens "Aucune ligne sélectionnée" même si j'exécute "Select user from dual" alors que je suis connecté à la base et que tout le reste fonctionne.
    J'ai "simplement" mes triggers d'insert qui ne fonctionnent plus car j'utilise dual pour récupérer des valeurs de séquences.
    Cette base Oracle résulte d'une migration d'une base SQLServer.
    Je pense que je fais faire un export de mon schéma, créer une nouvelle base et réimporter le dump car là, je sèche

  9. #9
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    je pense que le problème est tout bête, il y a juste une table DUAL dans ton schéma ;-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SCOTT@LSC01> create table dual(x number);
     
    Table created.
     
    SCOTT@LSC01> select * from dual;
     
    no rows selected
    c'est tout à fait légal. mais c'est problématique je le reconnais...

  10. #10
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    si possible essaye de renommer ta table dual

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SCOTT@LSC01> rename dual to sqlserverdual;
     
    Table renamed.

  11. #11
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    attention à ne pas effectuer ce rename en tant que SYS

  12. #12
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    ou alors tu peux employer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select mysequence.nextval into x from SYS.DUAL
    dans le futur tu pourras sans doute

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SQL> create sequence s;
     
    Sequence created.
     
    SQL> declare n number; begin n:=s.nextval; end;
      2  /
     
    PL/SQL procedure successfully completed.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par laurentschneider
    je pense que le problème est tout bête, il y a juste une table DUAL dans ton schéma ;-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SCOTT@LSC01> create table dual(x number);
     
    Table created.
     
    SCOTT@LSC01> select * from dual;
     
    no rows selected
    c'est tout à fait légal. mais c'est problématique je le reconnais...
    Ben non, pas de chance, il n'y a pas de table DUAL dans mon schéma...

  14. #14
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    Voilà la preuve
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SQL> column OWNER format a15;
    SQL> column OBJECT_NAME format a20;
    SQL> select OWNER,OBJECT_NAME,OBJECT_TYPE,CREATED from dba_objects where object_name='DUAL';
    OWNER           OBJECT_NAME          OBJECT_TYPE        CREATED
    --------------- -------------------- ------------------ --------
    SYS             DUAL                 TABLE              02/04/07
    PUBLIC          DUAL                 SYNONYM            02/04/07
    SQL>

  15. #15
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    est-ce que vous avez la même chose :
    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
    SQL> desc dual;
     Nom                                       NULL ?   Type
     ----------------------------------------- -------- ----------------------------
     DUMMY                                              VARCHAR2(1)
     
    SQL> select owner from dba_tables where Table_Name = 'DUAL';
     
    OWNER
    ------------------------------
    SYS
     
    SQL> select owner from dba_views where View_Name = 'DUAL';
     
    aucune ligne sélectionnée
     
    SQL> select * from dual;
     
    D
    -
    X
    sous SQL*Plus

  16. #16
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    donc ça ressemble bien à quelqu'un qui a fait le ménage dans dual ...

  17. #17
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    Oui, j'ai la même chose

  18. #18
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    Y compris le X dans le select * from dual ???

  19. #19
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    Bon, dernier recours avant dump.

    J'ai arrêté puis relancé la base (sans trop y croire) et Oh Miracle! maintenant ça marche .
    Je n'ai pas compris ce qui s'est passé (en plus, j'étais le seul connecté à cette base) mais tout semble être Ok maintenant.

    Merci à tous d'avoir réfléchi avec moi.

  20. #20
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 27
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par LeoAnderson
    Y compris le X dans le select * from dual ???
    Oui, il y avait exactement la même chose, y compris le X !!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XSL~FO] Problème avec une table de plus d'une page
    Par ganga dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 25/01/2007, 20h16
  2. [JSTL] Problème avec une table
    Par lionelh dans le forum Taglibs
    Réponses: 3
    Dernier message: 22/02/2006, 21h26
  3. [MySQL] Problème avec TRUNCATE TABLE
    Par philippef dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/01/2006, 14h41
  4. Problème avec une table
    Par Paulinho dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 15/12/2005, 10h17
  5. Problème avec mes tables de relation...
    Par mmike dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/06/2003, 15h16

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