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

Oracle Discussion :

Type heure sous Oracle 10g


Sujet :

Oracle

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Informaticien
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Informaticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Points : 7
    Points
    7
    Par défaut Type heure sous Oracle 10g
    Bonjours à tous je souhaite savoir comment créer et insérer dans la table ci-dessous les données de type heure,sous oracle à ma connaissance il n'y a pas le type time

    VOL(VOLNUM, PLNUM, AVNUM, VILLEDEP, VILLEARR, HEUREDEP,HEUREARR)

    Merci

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    En effet, le type TIME n'existe pas sous Oracle.

    Vous pouvez, au choix :
    1. utiliser le type DATE, qui porte la date et l'heure
    2. utiliser un varchar2(5) avec un contrôle sur les caractères saisis
    3. utiliser un entier qui représente le nombre de secondes depuis minuit

  3. #3
    Expert Oracle confirmé

    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Mars 2003
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2003
    Messages : 448
    Points : 926
    Points
    926
    Par défaut
    Bonjour,

    Oui il faut utiliser le type DATE qui stocke le jour, mois, année, heure, minute et seconde.

    Ou alors le type TIMESTAMP qui va plus loin que le type DATE, car il descend jusqu'à la nano-seconde et permet en plus de stocker un fuseau horaire.

    Par contre, je ne suis pas fan de stocker des dates sous forme de nombres ou de chaînes de caractères.

    Cela donne parfois des plans d'exécution qui ne sont pas optimaux lorsque l'on travaille sur un intervalle de date.

    Exemple avec une date codée en tant que NUMBER.

    La différence entre aujourd'hui 20131107 et hier 20131106 est bien de 1 (jour).

    Par contre, qu'en est-il entre le premier de l'an et la fin de l'année ?

    20140101 - 20131231 = 8870 jours et non pas 1 !!!

  4. #4
    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
    sous oracle à ma connaissance il n'y a pas le type time
    En effet, le type TIME n'existe pas sous Oracle
    C’est vrai sauf que …
    Ça m’a rappelé une astuce montrée sur ce forum par Laurent Schneider

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 
    Connected as mni
     
    SQL> create view v as select time '14:01:00' heure from dual
      2  /
     
    View created
     
    SQL> desc v
    Name  Type        Nullable Default Comments 
    ----- ----------- -------- ------- -------- 
    HEURE TIME(9)(20) Y                         
     
    SQL> select dump(heure) from v
      2  /
     
    DUMP(HEURE)
    --------------------------------------------------------
    Typ=185 Len=20: 0,0,0,0,14,1,0,0,0,0,0,0,0,0,2,0,0,0,0,0
     
    SQL> 
    SQL> SELECT t.typecode,o.name
      2    FROM sys.type$ t, sys.obj$ o
      3   WHERE BITAND (t.properties, 16) = 16
      4     AND t.toid = o.oid$
      5     And t.typecode = 185
      6  /
     
      TYPECODE NAME
    ---------- ------------------------------
           185 TIME
     
    SQL>
    Donc en interne il existe bien un type de donnée time

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut


    C'est quand même pernicieux qu'on puisse créer une vue mais pas une table avec ce type.

Discussions similaires

  1. [10g] Type heure sous Oracle 10g
    Par ouatfred24 dans le forum Oracle
    Réponses: 1
    Dernier message: 08/06/2013, 12h11
  2. Problème avec le type "LONG" sous Oracle 10g
    Par th.garcia dans le forum Oracle
    Réponses: 3
    Dernier message: 19/06/2009, 13h57
  3. problème d'exécution d'un report sous oracle 10g
    Par seure dans le forum Reports
    Réponses: 1
    Dernier message: 22/03/2006, 18h47
  4. [Volumétrie] recherche info sous Oracle 10g
    Par LovSylv dans le forum Oracle
    Réponses: 6
    Dernier message: 03/02/2006, 04h04
  5. Pb de performances sous Oracle 10g
    Par kamalito dans le forum Oracle
    Réponses: 24
    Dernier message: 25/10/2005, 17h59

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