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

Oracle Discussion :

EXEUCUTE ne fonctionne pas !


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 145
    Par défaut EXEUCUTE ne fonctionne pas !
    salut à tous,

    J'ai creer un procedure dans lequel il y a une fonction qui test si c'est une valeur numerique. J'execute le code suivant :

    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
     
    CREATE OR REPLACE PACKAGE Test AS
       FUNCTION Is_Numeric (valeur IN VARCHAR2) RETURN NUMBER;
    END Test;
    /
     
     
    CREATE OR REPLACE PACKAGE BODY Test AS
     
    FUNCTION Is_Numeric (valeur IN VARCHAR2)
       RETURN NUMBER IS
       -- Retourne 1 si valeur est numérique, 0 sinon
          i NUMBER;
       BEGIN
          i := TO_NUMBER(valeur);
    	  RETURN 1;
       EXCEPTION
           WHEN OTHERS THEN RETURN 0;
       END Is_Numeric;
    END Test;
    /
    Le corp du package a été correctement execute. Ensuite je veux tester en executant la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    EXECUTE Test.Is_Numeric (1);
    Et malheureusement la commande ne s'execute pas. Un message d'erreur est affiché :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ORA-06550: Ligne 1, colonne 7 :
    PLS-00221: 'IS_NUMERIC' n'est pas une procédure ou est indéfini
    ORA-06550: Ligne 1, colonne 7 :
    PL/SQL: Statement ignored
    Auriez vous une idée pourquoi il n'arrive pas à executer ma commande?

    Je vous remercie d'avance

  2. #2
    Expert confirmé
    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
    Par défaut
    et comme ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXECUTE Test.Is_Numeric ('1');

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 145
    Par défaut
    Ca ne marche pas aussi avec cette commande

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par wormseric
    Ca ne marche pas aussi avec cette commande
    bien sûr on ne peut pas executer des fonctions, seulement des procédures ...

    essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var i number
    exec :i:=test.isnumberic(1)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 145
    Par défaut
    Je vois pas trop comment veux tu que j'execute ton code

  6. #6
    Expert confirmé
    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
    Par défaut
    Il veut dire (à juste titre) que c'est une fonction qui retourne un résultat et qui ne peut donc pas être appelée comme une procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Declare
      p1 number ;
    Begin
      p1 := test.isnumberic(1);
    End ;

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/01/2004, 11h14
  2. [FP]Writeln ne fonctionne pas !
    Par néo333 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 01/11/2003, 23h47
  3. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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