在Oracle中为insert / update语句选择表?

时间:2012-01-16 18:59:49

标签: sql oracle insert

我想把它扔出去寻找一些想法。我正在编写一个程序来生成插入/更新语句,我希望我插入/更新的表来自查询结果。所以像(请原谅语法):

INSERT INTO (SELECT TBL_NAME FROM MYTABLES WHERE A=B) VALUES ('A', 'B', 'C');

我必须在Oracle中这样做,但我不太熟悉它们的声明语句或语法。我猜测最好的方法是声明一个SELECT结果的变量,但是我可以使用该变量作为INSERT的表名吗?

我也希望将代码保存在SQL中。

感谢任何想法。

2 个答案:

答案 0 :(得分:4)

我想你可能想看看Dynamic SQL,你可能会找到你的答案(或者至少是一个不错的起点)。

答案 1 :(得分:0)

这样的事情怎么样:

SELECT 'INSERT INTO ' || TBL_NAME || ' VALUES (''A'', ''B'', ''C'');' cmd
FROM MYTABLES WHERE A=B
;

运行此选择,然后运行select的结果(即insert语句)。 不要忘记“提交”。

此致 罗杰 所有观点都是我的......