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;
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
Merci, et désolépour ce post dans ce forum, en tout cas vous m'avez trouver la solution !!
A +
Partager