Transformation d'une donnée sélectionnée PLSQL
Nouvelle_Informaticienne
Messages postés
173
Statut
Membre
-
Nouvelle_Informaticienne Messages postés 173 Statut Membre -
Nouvelle_Informaticienne Messages postés 173 Statut Membre -
Bonjour la communauté :) ,
j'ai le code pl/sql suivant :
qui fait la sélection des champs et si c'est un type number je le cast en number et je le réenregistre dans une vue, tous marche bien jusqu'au la
sauf que je veux rajouter la condition que ma valeur CHA_VALUE doit être dans le domaine [0-9.] avant de la transformer en number et si je croise un nombre avec une virgule , je dois transformer la , en . avant de l'enregistrer ! par exemple la donnée est : 12,45 je dois la transformer en 12.45 et en number apres !
mon essai est le suivant je rajoute a la fin du 'WHER'E un 'AND' :
pour le changement de ',' en '.' je cherche encore.
le bout de code que j'ai fait est juste ou pas ? est ce que je dois le rajouter à la fin du WHERE ? des idées pour le transferts de ',' => '.' s'il vous plait .
je vous remercie :)
j'ai le code pl/sql suivant :
---- Type number
if (v_type= 'number')
then
SQL_VIEW := SQL_VIEW || ', (SELECT to_number(CHA_VALUE)
FROM TA_CHAMP CHA
INNER JOIN TA_TYPE_CHAMP TCH ON TCH.ID_TYPECHAMP = CHA.ID_TYPECHAMP
WHERE TCH_ORDRE = ' || i_ordre || ' AND ID_DOSSIER = DOS.ID_DOSSIER) AS ' || v_nom;
qui fait la sélection des champs et si c'est un type number je le cast en number et je le réenregistre dans une vue, tous marche bien jusqu'au la
sauf que je veux rajouter la condition que ma valeur CHA_VALUE doit être dans le domaine [0-9.] avant de la transformer en number et si je croise un nombre avec une virgule , je dois transformer la , en . avant de l'enregistrer ! par exemple la donnée est : 12,45 je dois la transformer en 12.45 et en number apres !
mon essai est le suivant je rajoute a la fin du 'WHER'E un 'AND' :
AND REGEXP_LIKE (CHA_VALUE, '[0-9.]*$')=> ça c'est pour la condition qu'il soit un nombre avec ou pas le point ( qui désigne virgule)
pour le changement de ',' en '.' je cherche encore.
le bout de code que j'ai fait est juste ou pas ? est ce que je dois le rajouter à la fin du WHERE ? des idées pour le transferts de ',' => '.' s'il vous plait .
je vous remercie :)
1 réponse
-
Bonjour,
Pour remplacer un caractère dans une chaîne, il faut utiliser la fonction REPLACE :REPLACE(CHA_VALUE, ',', '.')
https://www.techonthenet.com/oracle/functions/replace.php
Xavier