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 :

Arguments optionnels fonction PL/SQL


Sujet :

PL/SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 30
    Points : 17
    Points
    17
    Par défaut Arguments optionnels fonction PL/SQL
    Bonjour,

    etant relativement nouveau dans le monde du PL/SQL j essai de m adapter a patir de ce que je connais deja...

    1) Je veu creer une fonction avec des arguments optionels....("Optional" dans une declaration en VBA..) ....comment faire en PL/SQL? --je sai que l on peut recreer une fonction du meme nom avec moins d arguments mais c est pas tres propre tout ca......

    2) Est - il possible de rendre des variables "Public"? (dans un package?).....une procedure appelle une fonction qui utilise plusieurs variables (et 3 ou 4 arguments ....voir "1" ))...pour rendre la fonction plus performante j aimerais declarer et associer ces variables dans la procedure, histoire de pas le faire a chaque fois que la fonction tourne....

    Merci pour votre aide!!

    Sparal

  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
    1) oui en utilisant default :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create or replace function maFonction (a number, b varchar2 default null) ...
    Cela dit, je ne vois pas ce que cela a "de pas très propres" d'avoir plusieurs fonctions ayant le même nom et acceptant des paramètres différents : cela s'appelle le polymorphisme.

    2) Les variables "publiques" doivent être déclarées dans l'entête de package, les variables "privées" doivent être déclarées dans le package body.
    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
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 30
    Points : 17
    Points
    17
    Par défaut Arguments optionnels fonction PL/SQL
    SAlut,

    1) Merci beaucoup pour ta reponse, j avai pas penser a declarer ma variable nulle pas defaut....malin.
    Si je prefere faire comme ca plutot que d avoir plisieur fonctions du meme nom , cest juste par esprit de simplification et de facilite de comprehension. Comme ces arguments sont optionels, la fonction reste exactement la meme, c est pourquoi je trouvais ca dommage de recopier la meme chose et de doubler le nombre de lignes si on peut simplement declarer cet argument optionel. Cela dit je suis sur que si ce concept de "polymorphisme" existe, il doit y avoir de bonnes raisons, mais je suis pas aller assez loin dans les subtilites de ce language pour l utiliser.
    2) oki, j essairai de declarer mes variables dans l en tete (il me semblait que j avais deja essayer mais sans succes...mais bon si tu le dit..j ai du me tromper...)....mais je pense que je dois leur assigner une valeurs seulement dans la procedure?....vraI?

  4. #4
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 842
    Points : 983
    Points
    983
    Par défaut
    cela s'appelle le polymorphisme
    Non, rien à voir avec le plymorphisme !
    On parle plutôt de surcharge d'opérateurs ou de fonctions.
    Le polymorphisme est la vision de 2 objets comme étant identiques tout en étant différents (manipulations identiques, mais réactions différentes).
    Au suivant !
    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 30
    Points : 17
    Points
    17
    Par défaut Done
    naja, ...

    dans tous les cas j ai trouve ce que je cherchais.....
    avec le "null2 je peu bien rendre mes arguments optionels.....
    En declarant mes variables dans la spec et en les assignant dans le body ca marche.....

    Merci bien....

    Sparal...

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

Discussions similaires

  1. [DOM] Transmission d'arguments optionnels entre fonctions
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 32
    Dernier message: 16/12/2008, 17h32
  2. Arguments optionnels en entrée d'une fonction
    Par ricololo dans le forum MATLAB
    Réponses: 3
    Dernier message: 30/09/2008, 13h33
  3. arguments optionnels d'une fonction
    Par samtheh dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/06/2007, 11h24
  4. Argument optionnel d'une fonction
    Par Xunil dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/02/2007, 22h33
  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