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
Version imprimable
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
En effet, le type TIME n'existe pas sous Oracle.
Vous pouvez, au choix :
- utiliser le type DATE, qui porte la date et l'heure
- utiliser un varchar2(5) avec un contrôle sur les caractères saisis
- utiliser un entier qui représente le nombre de secondes depuis minuit
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 !!!
Citation:
sous oracle à ma connaissance il n'y a pas le type time
C’est vrai sauf que … :DCitation:
En effet, le type TIME n'existe pas sous Oracle
Ça m’a rappelé une astuce montrée sur ce forum par Laurent Schneider
Donc en interne il existe bien un type de donnée timeCode:
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>
:ccool:
C'est quand même pernicieux qu'on puisse créer une vue mais pas une table avec ce type.