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 :

calcule de fromule


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 36
    Par défaut calcule de fromule
    Bonjour


    j'ai un souci avec ce bout de code,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE OR REPLACE FUNCTION CalculFromule (formule VARCHAR2)
    RETURN REAL IS resultat REAL;
    BEGIN
      select formule into resultat from DUAL;
      Return resultat;
    Exception
      when others 
      then return 0;
    END;
    Quand j'ai exécute une formule d'exemple 1+a il m'affiche une erreur
    ORA-00904:"A":invalid identifier
    MErci pour toute aider

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Par défaut
    Citation Envoyé par anas.bah Voir le message
    Quand j'ai exécute une formule d'exemple 1+a il m'affiche une erreur
    Pouvez-vous nous indiquer exactement le code d'exécution?

  3. #3
    Membre averti
    Inscrit en
    Février 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 36
    Par défaut
    Voici la requête
    Select CalculFromule(a+1) from dual

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Par défaut
    Citation Envoyé par anas.bah Voir le message
    Voici la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select CalculFromule(a+1) from dual
    Vous avez 2 problèmes:
    - écrit comme cela, la variable "a" n'a pas d'existence
    - votre fonction ne fonctionnera pas car la formule ne sera pas interprétée. Votre variable "resultat" contiendra la chaîne "a+1" (en fait, ça plantera vu que c'est une variable réelle).

    Où voulez-vous en venir exactement? Quel est le but de la manoeuvre?

  5. #5
    Membre averti
    Inscrit en
    Février 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 36
    Par défaut
    Bonjour,,

    Exactement je veux que ma fonction return 0 lors d'une exception comme cela a+1 ou bien une autre formule par exemple (1/0) ecora je veux pas avoir le message d'erreur
    ORA-00904:"A":invalid identifier
    .

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Le paramètre de votre fonction est un VARCHAR2.
    Il faut donc lui envoyer une chaîne de caractère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CalculFromule('a+1') FROM dual
    Si vous ne mettez pas de quote, il cherchera des colonnes avec le nom a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select a from dual;
     
    ORA-00904: "A" : identificateur non valide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select 'a' from dual;
     
    'A'
    --
    a
    Au passage en français on parle de formule, pas de fromule.

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

Discussions similaires

  1. [TP7] Calculer sin, cos, tan, sqrt via le FPU
    Par zdra dans le forum Assembleur
    Réponses: 8
    Dernier message: 25/11/2002, 04h09
  2. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 21h29
  3. Réponses: 8
    Dernier message: 18/09/2002, 03h20
  4. Récupérer 10 nb différents avec un calcul aléatoire
    Par BXDSPORT dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2002, 02h35
  5. Algo de calcul de FFT
    Par djlex03 dans le forum Traitement du signal
    Réponses: 15
    Dernier message: 02/08/2002, 17h45

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