从表中提取字符串以在查询中使用

时间:2018-03-01 18:06:56

标签: oracle plsql dynamic-sql

我刚开始使用PL / SQL。我们将条件语句存储为一个表中的字符串(下面的表1),并希望根据另一个表中的公共变量(下面的表2)选择它们,如下所示:

表1

Case_ID   Col_1   Col_2
1         x       y
1         a       m
2         p       n 

表2

Col_1  Col_2  Col_3
x      y      c
a      m      b
p      n      q

决赛桌应该是这样的:

{{1}}

1 个答案:

答案 0 :(得分:0)

您可能想要使用动态SQL:

Begin
  For v_rec In (SELECT t2.Col_1,
                       t2.Col_2,
                       t1.statement
                  FROM TABLE2 t2
                 INNER JOIN TABLE1 t1
                    ON t2.Case_ID = t1.ID)
  Loop
    Execute Immediate 'INSERT INTO FINAL_TABLE(Col_1, Col_2, Col_3) ' ||
                      'SELECT Col1, Col2, ' || v_rec.statement ||
                      ' FROM ( SELECT :Col1 AS Col1, :Col2 AS Col2 FROM DUAL)'
                Using v_rec.Col_1, v_rec.Col_2;
  End Loop;
End;