Fonctions

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
FonctionProposExemple
ABS(n)Valeur absoluABS(-31.5) = 31.5



ACOS(n)Arc CosinusACOS(0.1) = 1,47062891
ASIN(n)Arc SinusASIN(0.1) = 0,100167421
ATAN(n)Arc TangenteATAN(0.1) = 0,099668652
ATAN2(n,m)Arc Tangente de n et mATAN2(0.1,0.2) = 0,463647609
BITAND(expr1,expr2)Execute un ET logique entre les expressions passe en parametreUtilisE 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 nMOD(7,5)=2 MOD(7,2)=1
POWER(m, n)
m eleve A la puissance nPOWER(2,3)=8
SIGN(n)
Signe de nSIGN(-31.5)=-1
SIGN(0)=0
SIGN(31.5)=1
SQRT(n)
Racine carre de nSQRT(16)=4
SQRT(-16)= erreur
ROUND(m[,n])
arrondi m a 10 -nROUND(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 -nTRUNC(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.
FonctionProposExemple
ADD_MONTHS(date, n)Ajout de moisADD_MONTHS('08-JUN-99',3)='08-SEP-99'
LAST_DAY(date)Dernier jour du moisLAST_DAY('12-JAN-99')='31-JAN-99'
MONTHS_BETWEEN(date1,date2)Nombre de mois entre deux datesMONTHS_BETWEEN ('08-JUN-99', '12-JAN-99') = 4.87096774
NEXT_DAY(date, jour)Date du prochain jourNEXT_DAY ( '16-SEP-97','MONDAY') = '22-SEP-97'
SYSDATEDate et heure systme'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 procheROUND (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 procheTRUNC(TO_DATE('27-OCT-92','DD-MON-YY'), 'YEAR') = 01-JAN-92Ê
Fonctions retournant une valeur de type caractere.
FonctionProposExemple
CHR(n)Caractere correspondant a nCHR(65) = 'A'
INITCAP(chaine)Premiere lettre majusculeINITCAP('maRtiN') = 'Martin'
INSTR(chaine, pos, occurence)Recherche sous-chaineINSTR('LE PAPA PASSE PAS','PA', 5, 3)= 15
LOWER(chaine)Toutes lettres en minusculesLOWER('MARTIN') = 'martin '
LPAD(chaine, pos, long)Complement par la gaucheLPAD('TOTO',7,'#')= '###TOTO'
RPAD(chaine, pos, long)Complement par la droiteRPAD('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, cha”ne)remplacement de caracteresREPLACE('JIJI','I','OU') = 'JOUJOU'
REPLACE('JIJI','I') = 'JJ'
SUBSTR(chaine, pos, long)Extraction d'une chaineSUBSTR('MARTIN',2,3)= 'ART'
SOUNDEX(chaine)comparaison phonetique
TRANSLATE(chaine, car, car)transcodageTRANSLATE('MATIN','MT','#*') = '#A*IN'
UPPER(chaine)Toutes lettres en majusculesUPPER('Martin ') = 'MARTIN'
Fonctions retournant une valeur numŽrique.
FonctionProposExemple
ASCII(chaine)Donne la valeur ASCII du premier caractere de la chaineASCII('ABCDE') = 65
INSTR(chaine, car, pos, occurrence)Recherche d'une sous_chaineINSTR('ADAMS','A',1,2) = 3
LENGTH(chaine)Longueur d'une chaineLENGTH('MARTIN') = 6
Fonctions de groupe.
FonctionPropos
AVGCalcule la Moyenne
COUNTRenvoi le nombre de lignes non nulles qui repondent au predicat
MAXRenvoi la valeur maximale
MINRenvoi la valeur minimale
STDDEVRenvoi l'ecart-type
SUMRenvoi la somme
VARIANCERenvoi la variance
Les fonctions de conversion.
FonctionPropos
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 caractres et caractres en date
CodeSignificationBornesExemple si date = 16-SEP-97
DJour de la semaine[1-7]3
DAYNom du jour (9 caracteres)TUESDAY
DDJour du mois[1-31]16
DDDJour de l'annee[1-366]259
HHHeures de la journee[1-12]1
HH24Heures de la journee[0-23]13
IWSemaine de l'annee ISO38
JNombre de jours julien depuis le 1 janvier 4712 BC2450708
MIMinutes[0-59]15
MMMois de l'annee[1-12]9
MONTHNom du mois (9 caracteres)SEPTEMBER
MONAbreviation du nom du moisSEP
RMMois en chiffre romain[I-XII]IX
QTrimestre de l'annee[1-4]3
RRUtilise pour annee97
WWSemaine de l'annee[1-53]37
WSemaine du mois[1-5]3
SSSecondes[0-59]11
SSSSSSecondes a partir de 0 heure[0-86399]44111
YEARAnnee en litteralNINETEEN NINETY-SEVEN
YYAnnee97
YYYYSiecle annee1997
ADApres J.CAD
BCAvant J.CBC
AMAvant midiAM
PMApres-midiPM
formats de conversion d'un nombre.
CodeExempleSignification
99999Determine la longueur d'affichage
0999Affiche les zeros de gauche
$$999Prefixe la valeur du signe $
BB999Affiche un blanc pour les valeurs a zero
Mi9999MiAffiche le signe - en fin, si valeur negative
SS999Affiche les signes + et - en debut
S999SAffiche les signes + et - en fin
PR9999PRAffiche les valeurs negatives entre <>
D999D9Affiche nombre avec separateur decimal
G9G999Affiche nombre avec separateur des milliers
,99,99Affiche nombre avec , a la position specifiee
.99.99Affiche nombre avec . A la position specifiee
V99V999Affiche nombre cadre avec decimale virtuelle
Exemple de conversion d'un nombre.
REFERENCEb99999.999PRb99999.999MI99G999D99909999V99909999.990$99999.999
12345.12312345.12312345.12312,345.1231234512312345.123$12345.123
1234.1231234.1231234.1231,234.123123412301234.123$1234.123
123.123123.123123.123123.12312312300123.123$123.123
12.12312.12312.12312.1231212300012.123$12.123
1.1231.1231.1231.123112300001.123$1.123
.123.123.123.12312300000.123$.123
.12.120.120.12012000000.120$.120
.1.100.100.10010000000.100$.100
0.000000000.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