【问题标题】:Select table for insert/update statement in Oracle?在 Oracle 中为插入/更新语句选择表?
【发布时间】:2013-01-24 04:40:28
【问题描述】:

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

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

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

我还想将代码保留在 SQL 中。

感谢您的任何想法。

【问题讨论】:

  • 我不明白你在做什么。 insert 语句不获取任何行,它会插入行。
  • 他想将值插入到他从子查询中确定名称的表中。

标签: sql oracle insert


【解决方案1】:

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

【讨论】:

  • 是的,为此需要动态 SQL。确定表名的查询首先需要作为普通的内联查询执行,然后插入语句需要构建为字符串,并结合从第一个查询中获得的表名。
【解决方案2】:

这样的事情怎么样:

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

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

问候, 罗杰 所有观点都是我的...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    相关资源
    最近更新 更多