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

SQL Oracle Discussion :

Comment créer une table et recupérer les dates des enregistrements?


Sujet :

SQL Oracle

  1. #21
    Membre confirmé Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Points : 603
    Points
    603
    Par défaut
    Citation Envoyé par laurentschneider Voir le message
    Bien sûr la valeur par défaut ne marche que lors de la création (INSERT), pas lors de la mise-à-jour (UPDATE)
    Et en plus il ne faut pas mentionner cette colonne lors de l'INSERT... si un developeur y met null, alors on est chocolat.
    Perso, pour les colonnes d'audit, un trigger est bien mieux.
    Ou alors je dois aussi etre farigue :-)

    Nicolas.

  2. #22
    Membre confirmé Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Points : 603
    Points
    603
    Par défaut
    Citation Envoyé par mnitu Voir le message
    J'ai l'impression que les choses sont un peu plus compliqués parce que, sauf erreur de ma part, cette fonction n'existe pas dans la doc Oracle.
    J'ai trouve seulement un wm_overlap qui n'est pas loin mais...
    Ce n'est pas documente.
    Tu peux lire un bon article la dessus :
    http://oraclesponge.wordpress.com/20...aps-predicate/

    Nicolas.

  3. #23
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Citation Envoyé par Jerome_Mtl Voir le message
    Les dates n'ont pas de format, on ne le répétera jamais assez.
    Le format, c'est juste pour l'affichage.
    Il y a un format interne de stockage et un format de manipulation qui sont différents. Mais le format de manipulation sert aussi à modifier la date car il faut bien écrire le littéral dans le format de manipulation pour pouvoir écrire une valeur dans une colonne de type DATE si l'application doit passer un littéral (une valeur en dur).

  4. #24
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par NGasparotto Voir le message
    ...
    Tu peux lire un bon article la dessus :
    http://oraclesponge.wordpress.com/20...aps-predicate/

    Nicolas.
    Regarde l'exemple que j'ai posté

  5. #25
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par NGasparotto Voir le message
    ...
    Perso, pour les colonnes d'audit, un trigger est bien mieux.
    Ou alors je dois aussi etre farigue :-)

    Nicolas.
    Un trigger ajoute un surcharge. Parfois ça compte. Mais cella ne veut pas dire que ce n'est pas une solution. Toute simplement une application peut fournir les valeurs et souvent c'est assez.

  6. #26
    Membre confirmé Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Points : 603
    Points
    603
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Un trigger ajoute un surcharge. Parfois ça compte. Mais cella ne veut pas dire que ce n'est pas une solution. Toute simplement une application peut fournir les valeurs et souvent c'est assez.
    Certes, il y a un impact sur les perf. Solution a voir avec chaque cas, tu as raison.

    Nicolas.

  7. #27
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par pifor Voir le message
    Il y a un format interne de stockage et un format de manipulation qui sont différents. Mais le format de manipulation sert aussi à modifier la date car il faut bien écrire le littéral dans le format de manipulation pour pouvoir écrire une valeur dans une colonne de type DATE si l'application doit passer un littéral (une valeur en dur).
    Oui, je suis d'accord, mais dans la pratique, il est fort sage de TOUJOURS préciser explicitement le format avec un to_date('08/07/2009','DD/MM/YYYY')...
    Entre les applications qui changent implicitement de format, les triggers qui modifient le nls_date pour certaines sessions, les fichiers login.sql pour sqlplus, les options de oracle sql developer...
    Sans parler du code qui voyage entre bd et qui ne sont pas paramétrer avec le même NLS_DATE.
    Ne pas trop compter sur ce NLS_DATE : un mot d'ordre : méfiance !!!

  8. #28
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 72
    Points : 57
    Points
    57
    Par défaut
    Merci de votre aide.

    Ce sujet est clos

  9. #29
    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 NGasparotto Voir le message
    Et en plus il ne faut pas mentionner cette colonne lors de l'INSERT
    Bon, à partir d'Oracle 9 on peut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into t values (default,default,default);
    Quand au valeurs dates par défaut, il y a un chouette bug dans Oracle 11.1.0.6

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create table t as select * from dual;
    alter table t add (d date default sysdate not null);
    select * from t;
    D D        
    - ---------
    X 00-000-00

  10. #30
    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
    il est pas mal celui-là

  11. #31
    Membre confirmé Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Points : 603
    Points
    603
    Par défaut
    Citation Envoyé par laurentschneider Voir le message
    Quand au valeurs dates par défaut, il y a un chouette bug dans Oracle 11.1.0.6

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create table t as select * from dual;
    alter table t add (d date default sysdate not null);
    select * from t;
    D D        
    - ---------
    X 00-000-00
    Laurent,
    Je me souviens effectivement de ce bug :
    http://forums.oracle.com/forums/thre...sageID=2475835

    Nicolas.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/05/2007, 16h13
  2. Réponses: 4
    Dernier message: 20/08/2006, 16h20
  3. [VBA-A]Comment créer une table à partir d'un recordset ?
    Par NoViceDel dans le forum VBA Access
    Réponses: 22
    Dernier message: 23/05/2006, 16h10
  4. [VB.NET] Comment créer une table dans base de données ?
    Par ptitesouris dans le forum VB.NET
    Réponses: 3
    Dernier message: 03/05/2006, 08h46
  5. Comment créer une Table dans 1 Bdd ACCESS avec Builder??
    Par makandja dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/03/2004, 20h21

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