Je travaille sur une application qui implique l'évaluation des modifications apportées aux véhicules, et effectue un certain nombre de calculs à partir de figures stockées dans une base de données Oracle 10g. Malheureusement, je n'ai que des données de texte dans la base de données, mais je dois travailler avec des chiffres et non du texte. Je voudrais savoir si quelqu'un pourrait m'aider à comprendre comment effectuer des opérations de chaîne sur les données de colonne VARCHAR2 dans une base de données Oracle 10g avec PLSQL:PLSQL pour modifier les données de la colonne VARCHAR2
Par exemple: Je dois prendre une colonne VARCHAR2 nommée TOP_SPEED dans une table nommée CARS , analysez les données de texte dans sa colonne pour le diviser en deux nouvelles valeurs et insérez ces nouvelles valeurs dans deux nouvelles colonnes de type NUMBER dans la table CARS, TOP_SPEED_KMH et TOP_SPEED_MPH.
Les données de la colonne TOP_SPEED sont en tant que telles: par ex. "153 km/h (94,62 mph)"
Je souhaite enregistrer la valeur de 153.00 dans la colonne TOP_SPEED_KMH et la valeur 94.62 dans la colonne TOP_SPEED_MPH.
Je pense que ce que je dois faire dans une requête/script est la suivante:
- sélectionner les données textuelles dans TOP_SPEED dans une variable texte locale
- modifier la variable texte local et enregistrer les nouvelles valeurs dans deux variables nombre
- écrire de nouveau les deux variables numériques pour les colonnes de TOP_SPEED_KMH et TOP_SPEED_MPH correspondant
quelqu'un pourrait-il s'il vous plaît confirmer que je suis sur la bonne voie? J'apprécierais aussi vraiment n'importe quel exemple de code si quelqu'un a le temps.
Vive
Cela a fonctionné très bien. La solution finale était la suivante: 'CARS UPDATE SET CAR_TOP_SPEED_KPH = to_number (substr (CAR_TOP_SPEED, 1, instr (UPPER (CAR_TOP_SPEED), KM/H ') -1)), CAR_TOP_SPEED_MPH = to_number (substr (regexp_substr (CAR_TOP_SPEED, '\ ([0-9] +'), 2)); ' – fuzzyanalysis