【问题标题】:Creating dynamic SQL queries in Oracle Trigger在 Oracle 触发器中创建动态 SQL 查询
【发布时间】:2011-09-02 22:31:39
【问题描述】:

我正在尝试在 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')

我没有必要使用现有的功能。如果可以使用此触发器将字符串拆分为数组并且具有同样有效的最终结果。

对此的任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: sql oracle triggers dynamic-sql


    【解决方案1】:

    换句话说,您想要数组元素的所有可能组合?

    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;
    

    【讨论】:

      猜你喜欢
      • 2020-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-05
      • 2013-12-24
      • 2018-02-07
      相关资源
      最近更新 更多