DECLARE
TYPE Outer_Loop IS TABLE OF VARCHAR2 (4000);
TYPE Inner_Loop IS VARRAY (50) OF VARCHAR2 (50 Byte)
OL Outer_Loop := Outer_Loop ('1','2');
IL Inner_Loop := Inner_Loop ('ONE','TWO','THREE','FOUR')
BEGIN
FOR I IN 1 .. OL.COUNT
LOOP
EXECUTE IMMEDIATE
'UPDATE User_'
|| OL (I)
FOR J IN 1 .. IL.COUNTER
LOOP
|| 'set Number = '
|| IL (J);
DBMS_OUTPUT.PUT_LINE (
'IN User_' || OL(I) || 'set Number AS' || IL (J) );
END LOOP;
COMMIT;
END;
Ожидаемый результат: я хочу обновить каждого пользователя ОДИН, ДВА, ТРИ, ЧЕТЫРЕ. Итак, результат, который я ожидаю, будет
IN User_1 set Number AS ONE
IN User_1 set Number AS TWO
IN User_1 set Number AS THREE
IN User_1 set Number AS FOUR
IN User_2 set Number AS ONE
IN User_2 set Number AS TWO
IN User_2 set Number AS THREE
IN User_2 set Number AS FOUR