Bonjour,

J'ai une table_X avec une colonne normes dont les données sont comme ceci:
ID NORMES
1 5w40;10w40;10w50;5w30

Dans un premier temps j'ai essayé une requête qui sépare cette chêne de caractère en gardant le même ID, la requête est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
with t as (
select '1' as ID, '5W40;10W40;10W50;5W30' as NORMES 
from DUAL --(TABLE_X)
)
select t.ID, x.column_value as NORMES
  from t
 cross join table(
              cast(multiset(
                       select substr( ';'||NORMES||';',
                                      instr( ';'||NORMES||';', ';', 1, rownum )+1,
                                      instr( ';'||NORMES||';', ';', 1, rownum+1 )
                                             -instr( ';'||NORMES||';', ';', 1, rownum )-1
                                     )
                         from dual
                      connect by level <= length(NORMES)-length(replace(NORMES,';',''))+1
                            ) as sys.odcivarchar2list )
                    ) x
 
ORDER BY NORMES;

La requête me ressort ce que je souhaite, c'est à dire :
ID NORMES
1 5w40
1 10w40
1 10w50
1 5w30

J'ai crée une table_Y avec une colonne NORMES , j'aimerai récupérer les données de la colonne NORMES de la table_X à travers ma requête WITH AS. Cependant je ne sais pas du tout ou placer mon "UPDATE" dans cette requête.

Merci d'avance pour vos réponses