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

SQL Oracle Discussion :

Utilisation de booleen avec des fonction en PL SQL


Sujet :

SQL Oracle

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 109
    Par défaut Utilisation de booleen avec des fonction en PL SQL
    Bonjour,

    je n'arrive pas à utiliser des booleens en tant que paramètre ou valeur de retour pour des fonctions en PL SQL.
    J'ai des messages d'erreur du style

    128/3 PL/SQL: SQL Statement ignored
    128/11 PLS-00306: wrong number or types of arguments in call to
    'FCT_CLC_SOLDE_FAC_CLI'


    Est ce qu'il y a une subtilité pour utiliser ce type de données ou bien est ce moi qui suis un gros noob ?

    Merci pour vos reponses

  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
    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
    SQL> create or replace function f1 (b in boolean) return boolean is
      2  begin return not b; end;
      3  /
    Function created.
     
    SQL> declare
      2     b boolean;
      3  begin
      4     b := f1(true);
      5  end;
      6  /
    PL/SQL procedure successfully completed.
     
    SQL> declare
      2     b boolean;
      3  begin
      4    b:= f1(1=2);
      5  end;
      6  /
    PL/SQL procedure successfully completed.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 109
    Par défaut
    Tout ce que tu as fait marche chez moi aussi ...

    En analysant plus précisement je viens de cerner mon problème mais je ne le comprends toujours pas. Voila la fonction que j'ai declaré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    FUNCTION FCT_CLC_SOLDE_CPT_CLI (p_vc_num_cpt_cli IN VARCHAR2,
                p_vc_num_cta_abt IN VARCHAR2, 
                p_bo_exg IN BOOLEAN) 
    RETURN NUMBER IS
    J'appelle cette fonction dans une autre fonction comme ci dessous : ca marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Declare
    titi number
    begin
      titi := FCT_CLC_SOLDE_CPT_CLI ('', '', true)
    end
    Mais mon utilité est plus compliquée ...
    J'appelle cette fonction dans une autre fonction, mais differemment comme ci dessous : ca marche PAS ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    begin
      SELECT FCT_CLC_SOLDE_CPT_CLI (C.NOM_CPT_CLI, C.ADRESSE_CLI, true)
      FROM CPT_CLI C
      WHERE blabla ...;
    end

    Du coup je test un truc plus simple comme ci dessous : ca marche PAS non plus ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    begin
      SELECT FCT_CLC_SOLDE_CPT_CLI ('', '', true)  FROM dual;
    end

  4. #4
    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
    Par défaut
    Oui tu ne peux pas utiliser du boolean dans du SQL.

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 109
    Par défaut
    Bon ben je pense en définitive mon problème insoluble ...


    http://www.lc.leidenuniv.nl/awcourse...ctions177a.htm

    c'est une DOC 9i mais en sur ma doc actuelle 10 g il y a pareil

    tant pis

  6. #6
    Invité de passage
    Inscrit en
    Avril 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 1
    Par défaut
    il faut utiliser un varchar avec contrainte true ou false ou lieu de boolean

  7. #7
    Invité
    Invité(e)
    Par défaut
    Prendre note que le type boolean existe en PL/Sql mais pas en SQL.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation de setTimeout avec des classes : BUG!
    Par seb-oulba dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/09/2006, 09h43
  2. erreur LNK2019 avec des fonctions communes.
    Par FamiDoo dans le forum Visual C++
    Réponses: 9
    Dernier message: 31/07/2006, 10h32
  3. Compilation avec des fonctions virtuel pure
    Par vanitom dans le forum C++
    Réponses: 4
    Dernier message: 16/12/2005, 14h37
  4. petit souci avec des variables avec des fonctions psql
    Par dust62 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/04/2005, 13h45
  5. Réponses: 1
    Dernier message: 06/08/2003, 11h48

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