是否可以使用动态填充的变量名执行INSERT语句?

时间:2016-11-16 15:31:17

标签: sql plsql

假设我们在数据库中有一个表:MASTER_X_Y。

我希望语法运行查询:

INSERT INTO MASTER_VARIABLE1_VARIABLE2 VALUES (.....);

其中VARIABLE1和VARIABLE2分别具有从另一个表中选择的值X和Y.

这可能吗?
(我有38种可能的X和Y组合,只是想将所选数据插入到正确的表中。还有其他方法吗?)

我正在使用oracle SQL 11g 这是我第一次编写PL / SQL程序,而且我没有得到任何简单的答案。

谢谢!

2 个答案:

答案 0 :(得分:0)

是的,是的,试试这个:

SELECT 'INSERT INTO MASTER_' || t.x || '_' || t.y || ' VALUES(...);'
FROM YourTable t

然后执行输出。

答案 1 :(得分:0)

在declare部分添加varchar变量v_sql_stmt,按如下所示准备语句,然后动态执行。

v_sql_stmt:=' INSERT INTO MASTER' ||' ' || VARIABLE1 ||' ' || VARIABLE2 | |'价值观(.....)';

立即执行v_sql_stmt;