bonjour,
je veux savoir une fonction Oracle PL/SQL Developper qui fait la même chose que celle IFNULL() de Sybase Interactive sql.
c urgent. merci d'avance.
bonjour,
je veux savoir une fonction Oracle PL/SQL Developper qui fait la même chose que celle IFNULL() de Sybase Interactive sql.
c urgent. merci d'avance.
et si tu nous expliquais ce que fais IFNULL ?
bon voilà ce que fait fait IFNULL(expr1,expr2,[expr3]) :
- si expr1 a une valeur nulle, la valeur de expr2 est retournée.
- si expr1 n'est pas nulle, expr3 est renvoyée.
- Si expr1 n'est pas nulle et il n'a pas de expr3(optionnelle), NULL est retournée.
Ben, j'ai vu la fonction NVL() mais elle prend 2 paramétres seulement alors que la IFNULL que je veux utilser en prends 3.
de l'aide svp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 SQL> create table test ( a varchar2(10)); Table créée. SQL> insert into test values (NULL); 1 ligne créée. SQL> insert into test values ('a'); 1 ligne créée. SQL> insert into test values (NULL); 1 ligne créée. SQL> insert into test values ('b'); 1 ligne créée. SQL> commit ; Validation effectuée. SQL> select decode (a,NULL,'EXPR2','EXPR3') from test ; DECOD ----- EXPR2 EXPR3 EXPR2 EXPR3 SQL> drop table test ; Table supprimée. SQL>
Et NVL2() ?
NVL2 lets you determine the value returned by a query based on whether a specified expression is null or not null. If expr1 is not null, then NVL2 returns expr2. If expr1 is null, then NVL2 returns expr3. The argument expr1 can have any datatype. The arguments expr2 and expr3 can have any datatypes except LONG.
If the datatypes of expr2 and expr3 are different, then Oracle converts expr3 to the datatype of expr2 before comparing them unless expr3 is a null constant. In that case, a datatype conversion is not necessary.
The datatype of the return value is always the same as the datatype of expr2, unless expr2 is character data, in which case the return value's datatype is VARCHAR2.
voila l'instruction sous Sybase que je veux reprendre sous PL/SQL Developper : cmpt_package:=IFNULL(cmpt_package,cmpt_package,string(cmpt_package,'\\'));
Là, tu vois bien que NVL ne tiendra pas .
je ne vois pas avec le DECODE().
pour faire plaisir à mon parrain
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 SQL> create table test ( a varchar2(10)); Table créée. SQL> insert into test values (NULL); 1 ligne créée. SQL> insert into test values ('a'); 1 ligne créée. SQL> insert into test values (NULL); 1 ligne créée. SQL> insert into test values ('b'); 1 ligne créée. SQL> commit ; Validation effectuée. SQL> select NVL2 (a,'EXPR2','EXPR3') from test ; NVL2( ----- EXPR3 EXPR2 EXPR3 EXPR2 SQL> drop table test ; Table supprimée. SQL>
ben oui, un parrain ça se bichonne !Envoyé par Jaouad
LE MONSIEUR TE DIT NVL2Envoyé par madina
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager