我是OracleDB的新手,希望能帮助我。我有两个表,如下图所示。我想使用循环(也许在过程中)从Table2到Table1插入任意数量的行。这可以通过遍历Table2中的ID并将从我这里选择的ID插入到New Updated Table1中来实现 图片:
第二个表必须保持相同,并且我必须能够对满足我的需求的Table2中的每一行执行此操作。我写了一个伪代码,但不确定如何实现它。预先感谢!
答案 0 :(得分:1)
这是原始 table1
:
SQL> select * from table1;
ID NAME PHONE
---------- ---------- ----------
1 Bob 123456
2 Jake 654975
3 Dillan 252487
如果您要“复制”所需的任何行,那么一个简单的选择就是一个纯SQL INSERT
语句,例如
SQL> insert into table1 (id, name, phone)
2 select id, name, phone
3 from table2
4 where id = &par_id;
Enter value for par_id: 4
1 row created.
({&par_id
是一个SQL * Plus替代变量)
或者,您可以将其中一些指定为IN
列表,例如
SQL> insert into table1 (id, name, phone)
2 select id, name, phone
3 from table2
4 where id in (5, 6);
2 rows created.
结果是
SQL> select * from table1 order by id;
ID NAME PHONE
---------- ---------- ----------
1 Bob 123456
2 Jake 654975
3 Dillan 252487
4 Harley 265687
5 Jack 244587
6 Luther 259876
6 rows selected.
或者,您可以编写一个过程来做到这一点(循环执行?为什么不这样做,如果它能完成这项工作),但是我想最终的选择取决于您究竟想做什么。目前,我看不到需要PL / SQL。