Oracle INSERT在一个查询中分成两个表

时间:2014-04-25 14:52:16

标签: sql oracle

只是想知道是否可以在Oracle 11g的单个查询中将INSERT运行到两个表中?

我知道你可以执行INSERT ALL ... SELECT查询,但我需要在没有SELECT的情况下执行此操作,因为这是直接从XLS进入数据库的数据。

理想情况下,我想要这样的例子:

INSERT INTO table1 t1, table2 t2 
(t1.tid, t1.date, t1.title, t2.tid, t2.date, t2.user, t2.note)
VALUES (1,'01-JAN-15','title',1,'01-JAN-15','john','test note');

有什么想法吗?

提前致谢

KS

2 个答案:

答案 0 :(得分:11)

尝试使用from dual;,如下所示:

INSERT ALL
INTO table1
  (tid, date, title) values (s_tid, s_date, s_title)
INTO table2
  (tid, date, user, note) values (s_tid, s_date, s_user, s_note)
SELECT s_tid, s_date, s_title, s_user, s_note
FROM
( 
    SELECT 
        1 s_tid,
        '01-JAN-15' s_date,
        'title' s_title,
        'john' s_user,
        'test note' s_note
    FROM dual;
)

答案 1 :(得分:0)

全部插入 INTO表1   (tid,curr_date,title)值(s_tid,s_date,s_title) INTO表2   (tid,curr_date,sys_user,note)值(s_tid,s_date,s_user,s_note) 选择s_tid,s_date,s_title,s_user,s_note 从 (     选择         2 s_tid,         '01 -FEB-15's_date,         'java's_title,         'Bablu Gope's_user,         'java_note's_note     FROM dual);

执行上述查询的过程。  1.将查询复制到扩展名必须为.sql的文件(如test.sql)  2.连接数据库  3.运行此命令  4. @ test.sql