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 :)
A voir également:
- Transformation d'une donnée sélectionnée PLSQL
- Transformer une image en icone - Guide
- Que veut dire supprimer les données d'une application - Guide
- Transformer une story en reel - Guide
- Excel reporter des données sur une autre feuille avec conditions - Forum Excel
- Transformer une note sur 20 ✓ - Forum Bureautique
1 réponse
Bonjour,
Pour remplacer un caractère dans une chaîne, il faut utiliser la fonction REPLACE :
https://www.techonthenet.com/oracle/functions/replace.php
Xavier
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
j'ai intégré la fonction REPLACE dans mon code comme suit :
mais le soucis c'est qu'il aime pas le '.' le point il le souligne et dis erreur de syntaxe ,
je ne vois pas trop pourquoi !
merci encore