Transformation d'une donnée sélectionnée PLSQL
Nouvelle_Informaticienne
Messages postés
153
Date d'inscription
Statut
Membre
Dernière intervention
-
Nouvelle_Informaticienne Messages postés 153 Date d'inscription Statut Membre Dernière intervention -
Nouvelle_Informaticienne Messages postés 153 Date d'inscription Statut Membre Dernière intervention -
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
- Excel reporter des données sur une autre feuille avec conditions - Forum Excel
- Transformer une story en reel - Guide
- 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