IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Fonction PL/SQL équivalente à IFNULL() de Sybase


Sujet :

PL/SQL Oracle

  1. #1
    Débutant
    Inscrit en
    Avril 2005
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 469
    Points : 106
    Points
    106
    Par défaut Fonction PL/SQL équivalente à IFNULL() de Sybase
    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.

  2. #2
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    et si tu nous expliquais ce que fais IFNULL ?
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    NVL

  4. #4
    Débutant
    Inscrit en
    Avril 2005
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 469
    Points : 106
    Points
    106
    Par défaut
    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


  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    NVL2 ou DECODE

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    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>

  7. #7
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    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.
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  8. #8
    Débutant
    Inscrit en
    Avril 2005
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 469
    Points : 106
    Points
    106
    Par défaut
    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().


  9. #9
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    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>

  10. #10
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par Jaouad
    pour faire plaisir à mon parrain
    ben oui, un parrain ça se bichonne !
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  11. #11
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par madina
    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().

    LE MONSIEUR TE DIT NVL2

  12. #12
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Citation Envoyé par SheikYerbouti
    ben oui, un parrain ça se bichonne !
    Ok Bichou

Discussions similaires

  1. Fonction sous SQL Server
    Par GeffD dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/04/2005, 11h32
  2. fonction DATEADD [SQL SERVER]
    Par HULK dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/12/2004, 17h33
  3. Réponses: 6
    Dernier message: 24/12/2004, 16h46
  4. [PostgreSQL] fonction pl/sql
    Par sam54 dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/05/2003, 16h09
  5. - fonction Transact-SQL...
    Par korrigann dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/05/2003, 15h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo