kolumny na wiersze

0

mam taką tabelkę1
tabelka1
column1| column2
a1 | a1,a2 // typ string "a1,a2" w jednej kolumnie
b1 | b1,b2,b3
c1 | c1,c2,c3,c4

i taką tabelką 2
column1 | column2
a1_1 |a1
a1_2 |a2
b1_1 |b1
b1_2 |b2

columna 2 w tabelce 1 mi się zmienia, czyli zmieniają się wartości a1,a2, b1, b2 itd
chciałbym robić update do tabelki 2, czyli a1_1 = a1.a1, a1_2=a1.a2

ma ktoś jakiś pomysł?
myślałem nad splitem tego, ale mam różną ilość pozycji i nie wiem jak to obejść

0

ja bym zrobił na szybko tak:

CREATE TABLE przecinki(t varchar2(200));
insert into przecinki values ('1,2,3,4,5,5,6');
insert into przecinki values ('41,42,434,444,45,35,26');
commit;
create table dane (i number);

declare 
 pos1 integer;
 pos2 integer;
 k integer;
 e integer;
 val number;
begin
for i in (select t from przecinki) loop
  k := 1;
  pos1 := 0;
  pos2 := instr(i.t,',',1, k);
  e := instr(i.t,',',-1,1);
  while pos1 < e loop
    k := k + 1;
    insert into dane values (to_number(substr(i.t,pos1+1,pos2-pos1-1)));
    pos1 := pos2;
    pos2 := instr(i.t,',',1, k);
  end loop;
  -- w zależności czy na końcu jest przecinek czy liczba...  
  if length(i.t) > e then
    pos1 := e;
    pos2 := length(i.t)+1;
    insert into dane values (to_number(substr(i.t,pos1+1,pos2-pos1-1)));
  end if;
  
end loop;
end; 

1 użytkowników online, w tym zalogowanych: 0, gości: 1