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 |