Diviser VARCHAR en colonnes distinctes dans Oracle
La tâche de transformer une colonne VARCHAR en colonnes distinctes en fonction d'un délimiteur spécifique pose un défi unique dans les systèmes de gestion de bases de données. Cette question explore la faisabilité de définir des colonnes une fois que l'ensemble de résultats a été structuré dans le but de diviser une chaîne en plusieurs parties.
Récupération et transformation de données
Dans cette Dans ce scénario, les données d'entrée sont constituées de commentaires avec un modèle de chaîne spécifique. L'objectif est de diviser ces commentaires en deux colonnes distinctes, la première section du commentaire apparaissant dans la première colonne et le reste du texte dans la deuxième colonne. Par exemple, si la valeur récupérée est :
COLUMN_ONE -------------------- 'D7ERROR username'
Le résultat souhaité serait :
COL_ONE COL_TWO -------------------- D7ERROR username
Solution utilisant SUBSTR et INSTR
En supposant que les données présentent un espacement cohérent entre les colonnes souhaitées, la requête suivante peut être used :
SELECT SUBSTR(t.column_one, 1, INSTR(t.column_one, ' ')-1) AS col_one, SUBSTR(t.column_one, INSTR(t.column_one, ' ')+1) AS col_two FROM YOUR_TABLE t
Cette requête utilise la fonction SUBSTR pour extraire des parties de la chaîne en fonction de la position du premier caractère espace (telle que déterminée par INSTR). Le résultat est les deux colonnes souhaitées, avec le délimiteur supprimé.
Fonctionnalités avancées d'Oracle 10g
Pour Oracle 10g et les versions ultérieures, des options plus flexibles sont disponibles à l'aide d'expressions régulières. (expression régulière). La fonction REGEXP_SUBSTR permet une puissante correspondance de modèles et de chaînes manipulation.
Références :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!