What do you mean duplicated ? I see one row per item
SQL> DROP TABLE t purge;
Table dropped.
SQL>
SQL> CREATE TABLE t
2 (ITEMS VARCHAR2(1000),
3 NAME VARCHAR2(1000));
Table created.
SQL>
SQL> INSERT INTO t
2 VALUES
3 ('12345',
4 'NAME1');
1 row created.
SQL>
SQL> INSERT INTO t
2 VALUES
3 ('2212,34134,1342',
4 'NAME2');
1 row created.
SQL>
SQL> INSERT INTO t
2 VALUES
3 ('234,6751',
4 'NAME3');
1 row created.
SQL>
SQL>
SQL> select *
2 from (select ','||items||',' I, name from t) t,
3 table(
4 cast(
5 multiset( select substr( i, instr( i, ',', 1, level )+1, instr(i,',',1,level+1)-instr(i,',',1,level)-1 )
6 from dual
7 connect by level < length(i)-length(replace(i,',','')) )
8 as sys.odciVarchar2List )
9 )
10 /
I NAME COLUMN_VALUE
-------------------- ------------------------------ ------------------------------
,12345, NAME1 12345
,2212,34134,1342, NAME2 2212
,2212,34134,1342, NAME2 34134
,2212,34134,1342, NAME2 1342
,234,6751, NAME3 234
,234,6751, NAME3 6751
6 rows selected.
SQL>
Can you elaborate on what you mean ?