A chaque type de données correspondent des opérateurs et des fonctions spécifiques. Oracle autorise le mélange de types dans les expressions et effectuera les conversions nécessaires:
date et chaîne de caractères chaîne de caractères convertis en date
nombre et chaîne de caractères chaîne de caractères convertis en nombre
La conversion sera effectuée si c'est possible.
Fonctions sur numériques | | |
Fonction | Propos | Exemple |
ABS(n) | Valeur absolu | ABS(-31.5) = 31.5
|
ACOS(n) | Arc Cosinus | ACOS(0.1) = 1,47062891 |
ASIN(n) | Arc Sinus | ASIN(0.1) = 0,100167421 |
ATAN(n) | Arc Tangente | ATAN(0.1) = 0,099668652 |
ATAN2(n,m) | Arc Tangente de n et m | ATAN2(0.1,0.2) = 0,463647609 |
BITAND(expr1,expr2) | Execute un ET logique entre les expressions passe en parametre | UtilisE avec DECODE |
CEIL(n) | Ramene a l’entier superieur
| CEIL(31.5)= 32
CEIL(-31.5)= -31
|
FLOOR(n)
| Ramene a l’entier inferieur
| FLOOR(31.5)= 31 FLOOR(-31.5)= -32 |
MOD(m, n)
| Reste de la division de m par n | MOD(7,5)=2 MOD(7,2)=1
|
POWER(m, n)
| m eleve A la puissance n | POWER(2,3)=8 |
SIGN(n)
| Signe de n | SIGN(-31.5)=-1
SIGN(0)=0
SIGN(31.5)=1 |
SQRT(n)
| Racine carre de n | SQRT(16)=4
SQRT(-16)= erreur
|
ROUND(m[,n])
| arrondi m a 10 -n | ROUND(125.34)=125 ROUND(1500,-3)=2000 ROUND(1499,-3=1000 ROUND(125.354,2)=125,34 ROUND(125.356,2)=125,35
|
TRUNC(m[,n]) | Tronque m a 10 -n | TRUNC(125.34)=125 TRUNC(1500,-3)=1000 TRUNC(1499,-3)=1000 TRUNC(125.354,2)=125,35 TRUNC(125.356,2)=125,35 |
Les fonctions sur date. | | |
Fonction | Propos | Exemple |
ADD_MONTHS(date, n) | Ajout de mois | ADD_MONTHS('08-JUN-99',3)='08-SEP-99' |
LAST_DAY(date) | Dernier jour du mois | LAST_DAY('12-JAN-99')='31-JAN-99' |
MONTHS_BETWEEN(date1,date2) | Nombre de mois entre deux dates | MONTHS_BETWEEN ('08-JUN-99', '12-JAN-99') = 4.87096774 |
NEXT_DAY(date, jour) | Date du prochain jour | NEXT_DAY ( '16-SEP-97','MONDAY') = '22-SEP-97' |
SYSDATE | Date et heure systme | '27-OCT-92' |
ROUND(date, format) | Retourne la valeur date arrondi a l'unite specifie par le format. Sans format la date est arrondi au jour le plus proche | ROUND (TO_DATE ('27-OCT-92'),'YEAR') =01-JAN-93Ê |
TRUNC(date, format) | Retourne la valeur date avec la partie du jour tronque a l'unite specifie par le format. Sans format date est tronque au jour le plus proche | TRUNC(TO_DATE('27-OCT-92','DD-MON-YY'), 'YEAR') = 01-JAN-92Ê |
Fonctions retournant une valeur de type caractere. | | |
Fonction | Propos | Exemple |
CHR(n) | Caractere correspondant a n | CHR(65) = 'A' |
INITCAP(chaine) | Premiere lettre majuscule | INITCAP('maRtiN') = 'Martin' |
INSTR(chaine, pos, occurence) | Recherche sous-chaine | INSTR('LE PAPA PASSE PAS','PA', 5, 3)= 15 |
LOWER(chaine) | Toutes lettres en minuscules | LOWER('MARTIN') = 'martin ' |
LPAD(chaine, pos, long) | Complement par la gauche | LPAD('TOTO',7,'#')= '###TOTO' |
RPAD(chaine, pos, long) | Complement par la droite | RPAD('TOTO',7,'#')= 'TOTO###' |
LTRIM(chaine, car) | Suppression par la gauche, de la liste des caracteres de car. On s'arrete au premier caractere qui n'est pas dans la liste. | LTRIM('MAMAN','AM') = 'N' |
RTRIM(chaine, car) | Suppression par la droite, de la liste des caracteres de car. On s'arrete au premier caractere qui n'est pas dans la liste. | RTRIM('MAMAN','AN') = 'MAM' |
REPLACE(chaine, car, chane) | remplacement de caracteres | REPLACE('JIJI','I','OU') = 'JOUJOU'
REPLACE('JIJI','I') = 'JJ' |
SUBSTR(chaine, pos, long) | Extraction d'une chaine | SUBSTR('MARTIN',2,3)= 'ART' |
SOUNDEX(chaine) | comparaison phonetique | |
TRANSLATE(chaine, car, car) | transcodage | TRANSLATE('MATIN','MT','#*') = '#A*IN' |
UPPER(chaine) | Toutes lettres en majuscules | UPPER('Martin ') = 'MARTIN' |
Fonctions retournant une valeur numrique. | | |
Fonction | Propos | Exemple |
ASCII(chaine) | Donne la valeur ASCII du premier caractere de la chaine | ASCII('ABCDE') = 65 |
INSTR(chaine, car, pos, occurrence) | Recherche d'une sous_chaine | INSTR('ADAMS','A',1,2) = 3 |
LENGTH(chaine) | Longueur d'une chaine | LENGTH('MARTIN') = 6 |
Fonctions de groupe. | |
Fonction | Propos |
AVG | Calcule la Moyenne |
COUNT | Renvoi le nombre de lignes non nulles qui repondent au predicat |
MAX | Renvoi la valeur maximale |
MIN | Renvoi la valeur minimale |
STDDEV | Renvoi l'ecart-type |
SUM | Renvoi la somme |
VARIANCE | Renvoi la variance |
Les fonctions de conversion. | |
Fonction | Propos |
TO_NUMBER(chaine) | Conversion d'une chaine en nombre |
TO_CHAR(expression, format) | Conversion d'une expression en chaine |
TO_DATE(chaine, format) | Conversion d'une chaine en date |
CHARTOROWID(chaine) | Conversion d'une chaine en rowid |
ROWIDTOCHAR(rowid) | Conversion d'un rowid en chaine |
CONVERT(chaine,charset,charset2) | Changement de caractere set |
Principaux formats de conversion d'une date en caractres et caractres en date | | | |
Code | Signification | Bornes | Exemple si date = 16-SEP-97 |
D | Jour de la semaine | [1-7] | 3 |
DAY | Nom du jour (9 caracteres) | | TUESDAY |
DD | Jour du mois | [1-31] | 16 |
DDD | Jour de l'annee | [1-366] | 259 |
HH | Heures de la journee | [1-12] | 1 |
HH24 | Heures de la journee | [0-23] | 13 |
IW | Semaine de l'annee ISO | | 38 |
J | Nombre de jours julien depuis le 1 janvier 4712 BC | | 2450708 |
MI | Minutes | [0-59] | 15 |
MM | Mois de l'annee | [1-12] | 9 |
MONTH | Nom du mois (9 caracteres) | | SEPTEMBER |
MON | Abreviation du nom du mois | | SEP |
RM | Mois en chiffre romain | [I-XII] | IX |
Q | Trimestre de l'annee | [1-4] | 3 |
RR | Utilise pour annee | | 97 |
WW | Semaine de l'annee | [1-53] | 37 |
W | Semaine du mois | [1-5] | 3 |
SS | Secondes | [0-59] | 11 |
SSSSS | Secondes a partir de 0 heure | [0-86399] | 44111 |
YEAR | Annee en litteral | | NINETEEN NINETY-SEVEN |
YY | Annee | | 97 |
YYYY | Siecle annee | | 1997 |
AD | Apres J.C | | AD |
BC | Avant J.C | | BC |
AM | Avant midi | | AM |
PM | Apres-midi | | PM |
formats de conversion d'un nombre. | | |
Code | Exemple | Signification |
9 | 9999 | Determine la longueur d'affichage |
0 | 999 | Affiche les zeros de gauche |
$ | $999 | Prefixe la valeur du signe $ |
B | B999 | Affiche un blanc pour les valeurs a zero |
Mi | 9999Mi | Affiche le signe - en fin, si valeur negative |
S | S999 | Affiche les signes + et - en debut |
S | 999S | Affiche les signes + et - en fin |
PR | 9999PR | Affiche les valeurs negatives entre <> |
D | 999D9 | Affiche nombre avec separateur decimal |
G | 9G999 | Affiche nombre avec separateur des milliers |
, | 99,99 | Affiche nombre avec , a la position specifiee |
. | 99.99 | Affiche nombre avec . A la position specifiee |
V | 99V999 | Affiche nombre cadre avec decimale virtuelle |
Exemple de conversion d'un nombre. | | | | | | |
REFERENCE | b99999.999PR | b99999.999MI | 99G999D999 | 09999V999 | 09999.990 | $99999.999 |
12345.123 | 12345.123 | 12345.123 | 12,345.123 | 12345123 | 12345.123 | $12345.123 |
1234.123 | 1234.123 | 1234.123 | 1,234.123 | 1234123 | 01234.123 | $1234.123 |
123.123 | 123.123 | 123.123 | 123.123 | 123123 | 00123.123 | $123.123 |
12.123 | 12.123 | 12.123 | 12.123 | 12123 | 00012.123 | $12.123 |
1.123 | 1.123 | 1.123 | 1.123 | 1123 | 00001.123 | $1.123 |
.123 | .123 | .123 | .123 | 123 | 00000.123 | $.123 |
.12 | .120 | .120 | .120 | 120 | 00000.120 | $.120 |
.1 | .100 | .100 | .100 | 100 | 00000.100 | $.100 |
0 | | | .000 | 0 | 00000.000 | $.000 |
-12345.123 | <12345.123> | 12345.123- | -12,345.123 | -12345123 | -12345.123 | -$12345.123 |
-1234.123 | <1234.123> | 1234.123- | -1,234.123 | -1234123 | -01234.123 | -$1234.123 |
-123.123 | <123.123> | 123.123- | -123.123 | -123123 | -00123.123 | -$123.123 |
-12.123 | <12.123> | 12.123- | -12.123 | -12123 | -00012.123 | -$12.123 |
-1.123 | <1.123> | 1.123- | -1.123 | -1123 | -00001.123 | -$1.123 |
-.123 | <.123> | .123- | -.123 | -123 | -00000.123 | -$.123 |
-.12 | <.120> | .120- | -.120 | -120 | -00000.120 | -$.120 |
-.1 | <.100> | .100- | -.100 | -100 | -00000.100 | -$.100 |