42
Copyright Oracle Corporation, 1998. Tous droits réservés. 3 3 Fonctions Mono-Ligne

Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

Embed Size (px)

Citation preview

Page 1: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

Copyright Oracle Corporation, 1998. Tous droits réservés.

33

Fonctions Mono-LigneFonctions Mono-Ligne

Page 2: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-2 Copyright Oracle Corporation, 1998. Tous droits réservés.

ObjectifsObjectifs

A la fin de ce chapitre, vous saurez :A la fin de ce chapitre, vous saurez :

• Décrire différents types de fonctions SQL

• Utiliser les fonctions caractère, numériques et date dans les ordres SELECT

• Expliquer les fonctions de conversion

A la fin de ce chapitre, vous saurez :A la fin de ce chapitre, vous saurez :

• Décrire différents types de fonctions SQL

• Utiliser les fonctions caractère, numériques et date dans les ordres SELECT

• Expliquer les fonctions de conversion

Page 3: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-3 Copyright Oracle Corporation, 1998. Tous droits réservés.

Qu’est ce qu’une fonction ?Qu’est ce qu’une fonction ?

Une fonction est une expression d’un type Une fonction est une expression d’un type de données spécifique qui fait partie de données spécifique qui fait partie d’une instruction utilisée pour calculer d’une instruction utilisée pour calculer une valeur .une valeur .

Une fonction est une expression d’un type Une fonction est une expression d’un type de données spécifique qui fait partie de données spécifique qui fait partie d’une instruction utilisée pour calculer d’une instruction utilisée pour calculer une valeur .une valeur .

Page 4: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-4 Copyright Oracle Corporation, 1998. Tous droits réservés.

Fonctions SQL Fonctions SQL

FonctionFonctionEntréeEntrée

arg 1arg 1

arg 2arg 2

arg narg n

La fonction La fonction exécute une exécute une

actionaction

SortieSortie

Valeur Valeur résultanterésultante

Page 5: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-5 Copyright Oracle Corporation, 1998. Tous droits réservés.

Deux Types de Fonctions SQLDeux Types de Fonctions SQL

FonctionsFonctions

Fonctions Fonctions mono-lignemono-ligne

Fonctions Fonctions multi-lignemulti-ligne

Page 6: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-6 Copyright Oracle Corporation, 1998. Tous droits réservés.

Fonctions Mono-LigneFonctions Mono-Ligne

• Manipulent des éléments de données

• Acceptent des arguments et ramènent une valeur

• Agissent sur chacune des lignes rapportées

• Ramènent un seul résultat par ligne

• Peuvent modifier les types de données

• Peuvent être imbriquées

• Manipulent des éléments de données

• Acceptent des arguments et ramènent une valeur

• Agissent sur chacune des lignes rapportées

• Ramènent un seul résultat par ligne

• Peuvent modifier les types de données

• Peuvent être imbriquées

function_name (column|expression, [arg1, arg2,...])function_name (column|expression, [arg1, arg2,...])

Page 7: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-7 Copyright Oracle Corporation, 1998. Tous droits réservés.

Fonctions Mono-LigneFonctions Mono-Ligne

ConversionConversion

CaractèreCaractère

NumériqueNumérique

DateDate

GénéraleGénéraleFonctionsFonctions

mono-lignemono-ligne

Page 8: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-8 Copyright Oracle Corporation, 1998. Tous droits réservés.

Fonctions CaractèreFonctions Caractère

FonctionFonctioncaractèrecaractère

LOWERLOWER

UPPERUPPER

INITCAPINITCAP

CONCATCONCAT

SUBSTRSUBSTR

LENGTHLENGTH

INSTRINSTR

LPAD ...LPAD ...

Fonctions de conversionFonctions de conversionmajuscules/minusculesmajuscules/minuscules

Fonctions de manipulationFonctions de manipulationdes caractèresdes caractères

Page 9: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-9 Copyright Oracle Corporation, 1998. Tous droits réservés.

Fonctions de Conversion Majuscules/Minuscules

Fonctions de Conversion Majuscules/Minuscules

Fonction

LOWER('Cours SQL')

UPPER('Cours SQL')

INITCAP('Cours SQL')

Résultat

cours sql

COURS SQL

Cours Sql

Page 10: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-10 Copyright Oracle Corporation, 1998. Tous droits réservés.

Utilisation des Fonctions de Conversion Majuscules/Minuscules

Utilisation des Fonctions de Conversion Majuscules/Minuscules

Afficher le matricule, le nom et le numéro Afficher le matricule, le nom et le numéro de département de l’employé Blake.de département de l’employé Blake.Afficher le matricule, le nom et le numéro Afficher le matricule, le nom et le numéro de département de l’employé Blake.de département de l’employé Blake.

SQL> SELECT empno, ename, deptno 2 FROM emp 3 WHERE ename = 'blake';

SQL> SELECT empno, ename, deptno 2 FROM emp 3 WHERE ename = 'blake';

EMPNO ENAME DEPTNO--------- ---------- --------- 7698 BLAKE 30

EMPNO ENAME DEPTNO--------- ---------- --------- 7698 BLAKE 30

SQL> SELECT empno, ename, deptno 2 FROM emp 3 WHERE LOWER(ename) = 'blake';

no rows selectedno rows selectedno rows selectedno rows selected

Page 11: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-11 Copyright Oracle Corporation, 1998. Tous droits réservés.

CONCAT('Une', 'Chaîne')

SUBSTR('Chaîne',1,3)

LENGTH('Chaîne')

INSTR('Chaîne', 'a')

LPAD(sal,10,'*')

UneChaîne

Cha

6

3

******5000

Fonction Résultat

Fonctions de Manipulation des Caractères

Fonctions de Manipulation des Caractères

Manipulation de chaînes de caractèresManipulation de chaînes de caractèresManipulation de chaînes de caractèresManipulation de chaînes de caractères

Page 12: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-12 Copyright Oracle Corporation, 1998. Tous droits réservés.

Utilisation des Fonctions de Manipulation des CaractèresUtilisation des Fonctions de Manipulation des Caractères

SQL> SELECT ename, CONCAT (ename, job), LENGTH(ename), 2 INSTR(ename, 'A') 3 FROM emp 4 WHERE SUBSTR(job,1,5) = 'SALES';

ENAME CONCAT(ENAME,JOB) LENGTH(ENAME) INSTR(ENAME,'A')---------- ------------------- ------------- ----------------MARTIN MARTINSALESMAN 6 2ALLEN ALLENSALESMAN 5 1TURNER TURNERSALESMAN 6 0WARD WARDSALESMAN 4 2

Page 13: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-13 Copyright Oracle Corporation, 1998. Tous droits réservés.

Fonctions NumériquesFonctions NumériquesROUND :ROUND : Arrondit la valeur à la précision Arrondit la valeur à la précision

spécifiéespécifiée

ROUND :ROUND : Arrondit la valeur à la précision Arrondit la valeur à la précision

spécifiéespécifiée

TRUNC :TRUNC : Tronque la valeur à la précision Tronque la valeur à la précision

spécifiéespécifiée

TRUNC :TRUNC : Tronque la valeur à la précision Tronque la valeur à la précision

spécifiéespécifiée

MOD :MOD : Ramène le reste d’une divisionRamène le reste d’une divisionMOD :MOD : Ramène le reste d’une divisionRamène le reste d’une division

ROUND(45.926, 2)ROUND(45.926, 2)ROUND(45.926, 2)ROUND(45.926, 2) 45.9345.9345.9345.93

TRUNC(45.926, 2)TRUNC(45.926, 2)TRUNC(45.926, 2)TRUNC(45.926, 2) 45.9245.9245.9245.92

MODE(1600,300)MODE(1600,300)MODE(1600,300)MODE(1600,300) 100100100100

Page 14: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-14 Copyright Oracle Corporation, 1998. Tous droits réservés.

Utilisation de la Fonction ROUND Utilisation de la Fonction ROUND

Affichage de la valeur 45.923 arrondie au Affichage de la valeur 45.923 arrondie au centième, à 0 décimale et à la dizaine centième, à 0 décimale et à la dizaine supérieure.supérieure.

Affichage de la valeur 45.923 arrondie au Affichage de la valeur 45.923 arrondie au centième, à 0 décimale et à la dizaine centième, à 0 décimale et à la dizaine supérieure.supérieure.

SQL> SELECT ROUND(45.923,2), ROUND(45.923,0), 2 ROUND(45.923,-1) 3 FROM DUAL;

ROUND(45.923,2) ROUND(45.923,0) ROUND(45.923,-1)--------------- -------------- ----------------- 45.92 46 50

Page 15: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-15 Copyright Oracle Corporation, 1998. Tous droits réservés.

SQL> SELECT TRUNC(45.923,2), TRUNC(45.923), 2 TRUNC(45.923,-1) 3 FROM DUAL;

TRUNC(45.923,2) TRUNC(45.923) TRUNC(45.923,-1)--------------- ------------- --------------- 45.92 45 40

Utilisation de la Fonction TRUNC Utilisation de la Fonction TRUNC

Affichage de la valeur 45.923 tronquée au Affichage de la valeur 45.923 tronquée au centième, à 0 décimale et à la dizaine.centième, à 0 décimale et à la dizaine.Affichage de la valeur 45.923 tronquée au Affichage de la valeur 45.923 tronquée au centième, à 0 décimale et à la dizaine.centième, à 0 décimale et à la dizaine.

Page 16: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-16 Copyright Oracle Corporation, 1998. Tous droits réservés.

Utilisation de la Fonction MODUtilisation de la Fonction MOD

Calculer le reste de la division salaireCalculer le reste de la division salairepar commission pour l’ensemble des par commission pour l’ensemble des employés ayant un poste de vendeur. employés ayant un poste de vendeur.

Calculer le reste de la division salaireCalculer le reste de la division salairepar commission pour l’ensemble des par commission pour l’ensemble des employés ayant un poste de vendeur. employés ayant un poste de vendeur.

SQL> SELECT ename, sal, comm, MOD(sal, comm) 2 FROM emp 3 WHERE job = 'SALESMAN';

ENAME SAL COMM MOD(SAL,COMM)---------- --------- --------- -------------MARTIN 1250 1400 1250ALLEN 1600 300 100TURNER 1500 0 1500WARD 1250 500 250

Page 17: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-17 Copyright Oracle Corporation, 1998. Tous droits réservés.

Autres Fonctions NumériquesAutres Fonctions Numériques

ABS(x) :ABS(x) : Valeur absolue de xValeur absolue de xABS(x) :ABS(x) : Valeur absolue de xValeur absolue de x

CEIL(n) :Plus petit entier supérieur ou égal à n.CEIL(n) :Plus petit entier supérieur ou égal à n.CEIL(n) :Plus petit entier supérieur ou égal à n.CEIL(n) :Plus petit entier supérieur ou égal à n.

SIGN(n) :SIGN(n) : Si n<0, -1; si n=0, 0; si n>0, 1.Si n<0, -1; si n=0, 0; si n>0, 1.SIGN(n) :SIGN(n) : Si n<0, -1; si n=0, 0; si n>0, 1.Si n<0, -1; si n=0, 0; si n>0, 1.

FLOOR(n) : Plus grand entier supérieur ou égal à FLOOR(n) : Plus grand entier supérieur ou égal à

n. n.

FLOOR(n) : Plus grand entier supérieur ou égal à FLOOR(n) : Plus grand entier supérieur ou égal à

n. n.

Page 18: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-18 Copyright Oracle Corporation, 1998. Tous droits réservés.

Utilisation des DatesUtilisation des Dates

• Oracle stocke les dates dans un format numérique interne : siècle, année, mois, jour, heures, minutes, secondes.

• Le format de date par défaut est DD-MON-YY.

• La fonction SYSDATE ramène la date et l’heure courante.

• DUAL est une table factice qu'on peut utiliser pour visualiser SYSDATE.

• Oracle stocke les dates dans un format numérique interne : siècle, année, mois, jour, heures, minutes, secondes.

• Le format de date par défaut est DD-MON-YY.

• La fonction SYSDATE ramène la date et l’heure courante.

• DUAL est une table factice qu'on peut utiliser pour visualiser SYSDATE.

Page 19: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-19 Copyright Oracle Corporation, 1998. Tous droits réservés.

Opérations Arithmétiques sur les Dates

Opérations Arithmétiques sur les Dates

• Ajout ou soustraction d’un nombre à une date pour obtenir un résultat de type date.

• Soustraction de deux dates afin de déterminer le nombre de jours entreces deux dates.

• Ajout d’un nombre d’heures à une date en divisant le nombre d’heures par 24.

• Ajout ou soustraction d’un nombre à une date pour obtenir un résultat de type date.

• Soustraction de deux dates afin de déterminer le nombre de jours entreces deux dates.

• Ajout d’un nombre d’heures à une date en divisant le nombre d’heures par 24.

Page 20: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-20 Copyright Oracle Corporation, 1998. Tous droits réservés.

Utilisation d’Opérateurs Arithmétiques avec les Dates

Utilisation d’Opérateurs Arithmétiques avec les Dates

SQL> SELECT ename, (SYSDATE-hiredate)/7 WEEKS 2 FROM emp 3 WHERE deptno = 10;

ENAME WEEKS---------- ---------KING 830.93709CLARK 853.93709MILLER 821.36566

Page 21: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-21 Copyright Oracle Corporation, 1998. Tous droits réservés.

Fonctions DateFonctions Date

Nombre de mois situés entre deux datesMONTHS_BETWEEN(d1,d2)

ADD_MONTHS(date, n)

NEXT_DAY(date,’char’)

LAST_DAY(date)

ROUND(date [,’fmt’] )

TRUNC (date [,’fmt’] )

Ajoute des mois calendaires à une date

Jour qui suit la date spécifiée

Dernier jour du mois

Arrondit une date

Tronque une date

FONCTION DESCRIPTION

Page 22: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-22 Copyright Oracle Corporation, 1998. Tous droits réservés.

• MONTHS_BETWEEN ('01-SEP-95','11-JAN-94')MONTHS_BETWEEN ('01-SEP-95','11-JAN-94')

Utilisation des Fonctions DateUtilisation des Fonctions Date

• ADD_MONTHS ('11-JAN-94',6)ADD_MONTHS ('11-JAN-94',6)

• NEXT_DAY ('01-SEP-95','FRIDAY') NEXT_DAY ('01-SEP-95','FRIDAY')

• LAST_DAY('01-SEP-95')LAST_DAY('01-SEP-95')

19.677419419.6774194

'11-JUL-94''11-JUL-94'

'08-SEP-95''08-SEP-95'

'30-SEP-95''30-SEP-95'

Page 23: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-23 Copyright Oracle Corporation, 1998. Tous droits réservés.

Utilisation des DatesUtilisation des Dates

• Oracle stocke les dates dans un format numérique interne : siècle, année, mois, jour, heures, minutes, secondes.

• Le format de date par défaut est DD-MON-YY.

• La fonction SYSDATE ramène la date et l’heure courante.

• DUAL est une table factice qu'on peut utiliser pour visualiser SYSDATE.

• Oracle stocke les dates dans un format numérique interne : siècle, année, mois, jour, heures, minutes, secondes.

• Le format de date par défaut est DD-MON-YY.

• La fonction SYSDATE ramène la date et l’heure courante.

• DUAL est une table factice qu'on peut utiliser pour visualiser SYSDATE.

Page 24: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-24 Copyright Oracle Corporation, 1998. Tous droits réservés.

Fonctions de ConversionFonctions de Conversion

Conversion Conversion de types de types

de données de données impliciteimplicite

ConversionConversionde typesde types

de données de données expliciteexplicite

Conversion Conversion de typesde types

de donnéesde données

Page 25: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-25 Copyright Oracle Corporation, 1998. Tous droits réservés.

Conversion de Types de Données Implicite

Conversion de Types de Données Implicite

Pour les affectations, Oracle effectue Pour les affectations, Oracle effectue automatiquement les conversions suivantesautomatiquement les conversions suivantesPour les affectations, Oracle effectue Pour les affectations, Oracle effectue automatiquement les conversions suivantesautomatiquement les conversions suivantes

VARCHAR2 ou CHAR

De Vers

VARCHAR2 ou CHAR

NUMBER

DATE

NUMBER

DATE

VARCHAR2

VARCHAR2

Page 26: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-26 Copyright Oracle Corporation, 1998. Tous droits réservés.

Conversion de Types de Données Implicite

Conversion de Types de Données Implicite

Pour l’évaluation d’expressions, Oracle effectue Pour l’évaluation d’expressions, Oracle effectue automatiquement les conversions suivantesautomatiquement les conversions suivantesPour l’évaluation d’expressions, Oracle effectue Pour l’évaluation d’expressions, Oracle effectue automatiquement les conversions suivantesautomatiquement les conversions suivantes

VARCHAR2 ou CHAR

De Vers

VARCHAR2 ou CHAR

NUMBER

DATE

Page 27: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-27 Copyright Oracle Corporation, 1998. Tous droits réservés.

Conversion de Types de Données Explicite

Conversion de Types de Données Explicite

NUMBERNUMBER CHARACTERCHARACTER

TO_CHARTO_CHAR

TO_NUMBERTO_NUMBER

DATEDATE

TO_CHARTO_CHAR

TO_DATETO_DATE

Page 28: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-28 Copyright Oracle Corporation, 1998. Tous droits réservés.

Utilisation de la Fonction TO_CHAR avec les DatesUtilisation de la Fonction TO_CHAR avec les Dates

Le modèle de format :

• Doit être placé entre simples quotes et différencie les majuscules et minuscules.

• Peut inclure tout élément valide de format date

• Comporte un élément fm qui supprime les espaces de remplissage ou les zéros de tête

• Est séparé de la valeur date par une virgule

Le modèle de format :

• Doit être placé entre simples quotes et différencie les majuscules et minuscules.

• Peut inclure tout élément valide de format date

• Comporte un élément fm qui supprime les espaces de remplissage ou les zéros de tête

• Est séparé de la valeur date par une virgule

TO_CHAR(date, 'fmt')TO_CHAR(date, 'fmt')

Page 29: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-29 Copyright Oracle Corporation, 1998. Tous droits réservés.

YYYY

Modèles de Format DateModèles de Format Date

YEAR

MM

MONTH

DY

DAY

Année exprimée avec 4 chiffres

Année exprimée en toutes lettres

Mois exprimé avec 2 chiffres

3 premières lettres du nom du jour

Jour exprimé en toutes lettres

Mois exprimé en toutes lettres

Page 30: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-30 Copyright Oracle Corporation, 1998. Tous droits réservés.

Modèles de Format pour les Dates

Modèles de Format pour les Dates

• Les éléments horaires formatent la Les éléments horaires formatent la partie horaire de la date.partie horaire de la date.

• Pour ajouter des chaînes de caractères, Pour ajouter des chaînes de caractères, les placer entre guillemets.les placer entre guillemets.

• Différents suffixes existent pour les Différents suffixes existent pour les nombres.nombres.

• Les éléments horaires formatent la Les éléments horaires formatent la partie horaire de la date.partie horaire de la date.

• Pour ajouter des chaînes de caractères, Pour ajouter des chaînes de caractères, les placer entre guillemets.les placer entre guillemets.

• Différents suffixes existent pour les Différents suffixes existent pour les nombres.nombres.

HH24:MI:SS AM 15:45:32 PM

DD "of" MONTH 12 of OCTOBER

ddspth fourteenth

Page 31: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-31 Copyright Oracle Corporation, 1998. Tous droits réservés.

Format de Date RRFormat de Date RR

Année en Cours1995199520012001

Date Spécifiée27-OCT-9527-OCT-1727-OCT-1727-OCT-95

Format RR1995201720171995

Format YY1995191720172095

Si les 2 chiffres de l’année en cours sont

0-49

0-49 50-99

50-99

La nouvelle date appartient au siècle courant.La nouvelle date appartient au siècle suivant.

La nouvelle date appartient au siècle précédent.

La nouvelle date appartient au siècle courant.

Si l’année spécifiée est située entre

Page 32: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-32 Copyright Oracle Corporation, 1998. Tous droits réservés.

Utilisation de la Fonction TO_CHAR avec les DatesUtilisation de la Fonction TO_CHAR avec les Dates

SQL> SELECT ename, 2 TO_CHAR(hiredate, 'fmDD Month YYYY') HIREDATE 3 FROM emp;

ENAME HIREDATE---------- -----------------KING 17 November 1981BLAKE 1 May 1981CLARK 9 June 1981JONES 2 April 1981MARTIN 28 September 1981ALLEN 20 February 1981...14 rows selected.

Page 33: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-33 Copyright Oracle Corporation, 1998. Tous droits réservés.

Utilisation de la Fonction TO_CHAR avec les Nombres

Utilisation de la Fonction TO_CHAR avec les Nombres

Utilisez les formats suivants avec Utilisez les formats suivants avec TO_CHAR pour afficher un nombre sous TO_CHAR pour afficher un nombre sous la forme d'une chaîne de caractère.la forme d'une chaîne de caractère.

Utilisez les formats suivants avec Utilisez les formats suivants avec TO_CHAR pour afficher un nombre sous TO_CHAR pour afficher un nombre sous la forme d'une chaîne de caractère.la forme d'une chaîne de caractère.

TO_CHAR(number, 'fmt')TO_CHAR(number, 'fmt')

9

0

$

L

.

,

Représente un chiffre

Force l’affichage du zéro

Place un signe dollar flottant

Utilise le symbole monétaire local flottant

Imprime un point décimal

Imprime un séparateur de milliers

Page 34: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-34 Copyright Oracle Corporation, 1998. Tous droits réservés.

Utilisation de la Fonction TO_CHAR avec les Nombres

Utilisation de la Fonction TO_CHAR avec les Nombres

SQL> SELECT TO_CHAR(sal,'$99,999') SALARY 2 FROM emp 3 WHERE ename = 'SCOTT';

SALARY-------- $3,000

Page 35: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-35 Copyright Oracle Corporation, 1998. Tous droits réservés.

Fonctions TO_NUMBER et TO_DATEFonctions TO_NUMBER et TO_DATE

• Conversion d’une chaîne de caractères en format numérique avec la fonction TO_NUMBER

• Conversion d’une chaîne de caractères en format numérique avec la fonction TO_NUMBER

TO_NUMBER(char)TO_NUMBER(char)

• Conversion d’une chaîne de caractères en format date avec la fonction TO_DATE

• Conversion d’une chaîne de caractères en format date avec la fonction TO_DATE

TO_DATE(char[, 'fmt'])TO_DATE(char[, 'fmt'])

Page 36: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-36 Copyright Oracle Corporation, 1998. Tous droits réservés.

Fonction NVLFonction NVL

Convertit une valeur NULL en une valeur Convertit une valeur NULL en une valeur réelleréelle

• Fonctionne avec les données de type date, caractère et numérique.

• Les types de données doivent correspondre

– NVL(comm,0)

– NVL(hiredate,'01-JAN-97')

– NVL(job,'No Job Yet')

Convertit une valeur NULL en une valeur Convertit une valeur NULL en une valeur réelleréelle

• Fonctionne avec les données de type date, caractère et numérique.

• Les types de données doivent correspondre

– NVL(comm,0)

– NVL(hiredate,'01-JAN-97')

– NVL(job,'No Job Yet')

Page 37: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-37 Copyright Oracle Corporation, 1998. Tous droits réservés.

SQL> SELECT ename, sal, comm, (sal*12)+NVL(comm,0) 2 FROM emp;

Utilisation de la Fonction NVLUtilisation de la Fonction NVL

ENAME SAL COMM (SAL*12)+NVL(COMM,0)---------- --------- --------- --------------------KING 5000 60000BLAKE 2850 34200CLARK 2450 29400JONES 2975 35700MARTIN 1250 1400 16400ALLEN 1600 300 19500...14 rows selected.

Page 38: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-38 Copyright Oracle Corporation, 1998. Tous droits réservés.

Fonction DECODEFonction DECODE

Facilite les recherches conditionnelles en Facilite les recherches conditionnelles en jouant le rôle de jouant le rôle de CASECASE ou ou IF-THEN-ELSEIF-THEN-ELSEFacilite les recherches conditionnelles en Facilite les recherches conditionnelles en jouant le rôle de jouant le rôle de CASECASE ou ou IF-THEN-ELSEIF-THEN-ELSE

DECODE(col/expression, search1, result1 [, search2, result2,...,] [, default])

DECODE(col/expression, search1, result1 [, search2, result2,...,] [, default])

Page 39: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-39 Copyright Oracle Corporation, 1998. Tous droits réservés.

Utilisation de la Fonction DECODEUtilisation de la Fonction DECODE

SQL> SELECT job, sal, 2 DECODE(job, 'ANALYST', SAL*1.1, 3 'CLERK', SAL*1.15, 4 'MANAGER', SAL*1.20, 5 SAL) 6 REVISED_SALARY 7 FROM emp;

JOB SAL REVISED_SALARY--------- --------- --------------PRESIDENT 5000 5000MANAGER 2850 3420MANAGER 2450 2940...14 rows selected.

Page 40: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-40 Copyright Oracle Corporation, 1998. Tous droits réservés.

Imbrication des FonctionsImbrication des Fonctions

• Le niveau d’imbrication des fonctions mono-ligne est illimité

• Les fonctions imbriquées sont évaluées de l'intérieur vers l'extérieur

• Le niveau d’imbrication des fonctions mono-ligne est illimité

• Les fonctions imbriquées sont évaluées de l'intérieur vers l'extérieur

F3(F2(F1(col,arg1),arg2),arg3)

Etape 1 = Résultat 1

Etape 2 = Résultat 2

Etape 3 = Résultat 3

Page 41: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-41 Copyright Oracle Corporation, 1998. Tous droits réservés.

Imbrication des FonctionsImbrication des Fonctions

SQL> SELECT ename, 2 NVL(TO_CHAR(mgr),'No Manager') 3 FROM emp 4 WHERE mgr IS NULL;

ENAME NVL(TO_CHAR(MGR),'NOMANAGER')---------- -----------------------------KING No Manager

Page 42: Copyright Oracle Corporation, 1998. Tous droits réservés. 3 Fonctions Mono-Ligne

3-42 Copyright Oracle Corporation, 1998. Tous droits réservés.

RésuméRésumé

Utilisez des fonctions mono-ligne pour :Utilisez des fonctions mono-ligne pour :

• Transformer des données

• Formater des dates et des nombres pour l'affichage

• Convertir des types de données de Convertir des types de données de colonnescolonnes

Utilisez des fonctions mono-ligne pour :Utilisez des fonctions mono-ligne pour :

• Transformer des données

• Formater des dates et des nombres pour l'affichage

• Convertir des types de données de Convertir des types de données de colonnescolonnes