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

Forms Oracle Discussion :

calculer une opération contenue dans un texte


Sujet :

Forms Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 16
    Points : 18
    Points
    18
    Par défaut calculer une opération contenue dans un texte
    Bonjour,

    peut on calculer une opération mathématique contenue dans une zone texte ?

    je m'explique :

    var1 := '(5+2)*3-1';

    var1 est en varchar2, je voudrai calculer le contenu de var1 !

    Merci de pour votre aide

    Stéphane

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2008
    Messages : 75
    Points : 95
    Points
    95
    Par défaut
    oui biensur ke c faisable il faut mettre en oeuvre un mini analyseur lexical pour reussir à interpreter la valeur contenue dans la chaine de caractere.
    tu peux songer à utiliser les fonctions "substr" pour decouper la chaine de carcteres.
    length pour recuperer la longueur de la chaine de caracteres.
    bon ya du travail a faire.

  3. #3
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DECLARE
      var1 VARCHAR2(100) := '(5+2)*3-1';
      var2 NUMBER ;
    BEGIN
      EXECUTE IMMEDIATE 'SELECT ' || var1 || ' FROM DUAL' INTO var2 ;
      DBMS_OUTPUT.PUT_LINE(var2);
    END;
    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

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 119
    Points : 114
    Points
    114
    Par défaut
    Bonjour,
    Voilà ce ke g fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    declare
    var1 varchar2(250) := '(5+2)*3-1';
    requete varchar2(250);
    resultat number;
    begin
    requete := 'select ' || var1 || ' from dual';
    execute immediate requete into resultat;
    dbms_output.put_line('resultat est: ' || resultat);
    end;
    /
    et voilà le résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    resultat est: 20
     
    PL/SQL procedure successfully completed
    ah désolé le sheikh était plus rapide que moi, c'est l'expérience qui gagne

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 16
    Points : 18
    Points
    18
    Par défaut
    Merci pour vos réponses, j'ai oublié de préciser que j'étais sous forms 6i, la procédure "EXECUTE IMMEDIATE" est rejetée !

  6. #6
    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 Palo2009 Voir le message
    Merci pour vos réponses, j'ai oublié de préciser que j'étais sous forms 6i, la procédure "EXECUTE IMMEDIATE" est rejetée !
    + post dans le mauvais forum... ça fait beaucoup

    Il va falloir créer une fonction dans la BDD qui prendra la chaine de calcul en entrée et retournera le résultat en sortie avec execute immediate.
    Sinon, il faut mettre en oeuvre le package Forms EXEC_SQL qui est plus compliqué.

    http://download-uk.oracle.com/otn_ho.../A73152_01.pdf
    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

  7. #7
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 16
    Points : 18
    Points
    18
    Par défaut
    Merci, et désolé pour ce post dans ce forum, en tout cas vous m'avez trouver la solution !!

    A +

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 06/05/2013, 09h09
  2. Réponses: 5
    Dernier message: 18/03/2011, 15h37
  3. Interpréter une variable contenue dans un fichier texte
    Par frederic_s dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 11/10/2007, 14h06
  4. Réponses: 9
    Dernier message: 02/05/2007, 14h59
  5. Effacer une chaine contenue dans une zone text
    Par johnnywalker dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/04/2007, 12h52

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