1
Можете ли вы, ребята, поделиться с как сделать ЕСЛИ ELSE Внутри a FORALL?IF ELSE Состояние внутри FORALL Oracle
Это мой текущий код, который отлично работает.
ДЛЯ ДЕКЛАРАЦИИ;
TYPE t_column1 IS TABLE OF USERS.column1%TYPE;
TYPE t_column2 IS TABLE OF USERS.column1%TYPE;
arr_column1 t_column1;
arr_column2 t_column2;
TYPE t_columnA IS TABLE OF ADDRESS.columnA%TYPE;
TYPE t_columnB IS TABLE OF ADDRESS.columnA%TYPE;
arr_columnA t_columnA := t_columnA();
arr_columnB t_columnB := t_columnB();
CURSOR cur IS
SELECT column1,column2
FROM USERS;
i INTEGER;
l_done BOOLEAN;
indx INTEGER;
ОСНОВНОЙ КОД:
OPEN cur;
LOOP
FETCH cur BULK COLLECT INTO
arr_column1, arr_column2
LIMIT 10000;
l_done := curRESALEMASTER%NOTFOUND;
FOR indx IN 1 .. arr_column1.COUNT
LOOP
arr_columnA.extend;
arr_columnB.extend;
arr_columnA(indx) := arr_column1(indx);
arr_columnB(indx) := 'XYZ';
END LOOP;
FORALL i IN 1 .. arr_column1.COUNT
INSERT INTO ADDRESS partition VALUES (
arr_columnA(i),
arr_columnB(i),
arr_column2(i);
EXIT WHEN (l_done);
END LOOP;
COMMIT;
CLOSE cur;
Так что мой вопрос заключается в том, как поставить условие FORALL?
Это будет что-то вроде:
FORALL i IN 1 .. arr_column1.COUNT
IF arr_columnA(indx) <> NULL THEN
INSERT INTO ADDRESS partition VALUES (
arr_columnA(i),
arr_columnB(i),
arr_column2(i);
END IF;
Но я не могу поставить условие внутри FORALL
Какой язык программирования это? –
PL/SQL - ORACLE. Извините, забыл упомянуть в заголовке – shukor