Создание динамических SQL-запросов в Oracle Trigger - PullRequest
1 голос
/ 27 мая 2011

Я пытаюсь написать триггер в Oracle 9i, который будет создавать динамические операторы вставки на основе значений из NEWROW, которые сработали триггер.строка существующей функции, которая возвращает таблицу значений (эта функция уже существует и работает нормально).По сути, функция разбивает строку на строки таблицы. Например, если я передаю два значения: «Рубашка, свитер» и «Красный, синий», я получаю две таблицы.Первая таблица имеет значения:

Shirt
Sweater

, а вторая таблица имеет значения

Red
Blue

Довольно просто.Как только эти две таблицы возвращены, мне нужно создать несколько динамических операторов вставки на основе значений из этих двух таблиц, например:

insert into mytable values ('Shirt','Red')
insert into mytable values ('Shirt','Blue')
insert into mytable values ('Sweater','Red')
insert into mytable values ('Sweater','Blue')

Нет необходимости использовать существующую функцию.Если строка может быть разбита на массивы с помощью этого триггера и иметь те же конечные результаты, что также работает.

Любая помощь в этом будет принята с благодарностьюСпасибо.

1 Ответ

3 голосов
/ 27 мая 2011

Вы хотите все возможные комбинации элементов массива, другими словами?

FOR i in 1 .. clothing.count LOOP
    FOR j in 1 .. colors.count LOOP
        INSERT INTO mytable VALUES ( clothing(i), colors(j) );
    END LOOP;
END LOOP;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...