我正在尝试在Oracle 9i中编写一个触发器,它将根据触发触发器的NEWROW的值创建一些动态插入语句。
我需要将新行的两个字段的值传递给返回值表的现有函数(此函数已存在且工作正常)。基本上该函数将字符串拆分为表行。例如,如果我传递的两个值是'Shirt,Sweater'和'Red,Blue',我会返回两个表。第一个表的值为:
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')
我没有必要使用现有的功能。如果字符串可以拆分为具有此触发器的数组,并且具有相同的最终结果,也可以正常工作。
任何帮助都将非常感激。感谢。
答案 0 :(得分:3)
你想要所有可能的数组元素组合,换句话说?
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;