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
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
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.
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
Bonjour,
Voilà ce ke g fais:
Code : Sélectionner tout - Visualiser dans une fenêtre à part set serveroutput onet voilà le résultat:
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; /
ah désolé le sheikh était plus rapide que moi, c'est l'expérience qui gagne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 resultat est: 20 PL/SQL procedure successfully completed
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
Merci, et désolé pour ce post dans ce forum, en tout cas vous m'avez trouver la solution !!
A +
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager