问题描述
我可以批量收集到已经有数据的现有集合并保留原始数据吗?换句话说,将新数据附加到现有数据中?
我正在寻找的输出将是 (订单不重要):
QWERTY
ASDF
Haikus很容易
但是有时候它们没有意义
冰箱
LiveSQL脚本正在引发错误: ORA-04088: 在触发器 “SYS.DBCLOUD_BEFORE_DDL_DB_TRG” ORA-06512执行期间出错: 在 “SYS.DBCLOUD_SYS_SEC”,第1295行
当我在办公桌上运行它时,我没有收到错误。
我正在寻找的输出将是 (订单不重要):
QWERTY
ASDF
Haikus很容易
但是有时候它们没有意义
冰箱
LiveSQL脚本正在引发错误: ORA-04088: 在触发器 “SYS.DBCLOUD_BEFORE_DDL_DB_TRG” ORA-06512执行期间出错: 在 “SYS.DBCLOUD_SYS_SEC”,第1295行
当我在办公桌上运行它时,我没有收到错误。
专家解答
可能最接近的是将查询添加到嵌套表作为第二个查询的一部分,
我已经将LiveSQL传递给了相关人员。
SQL> create or replace type String255List as table of varchar2(255);
2 /
Type created.
SQL> create table U_TEST1 (COLUMN_1 varchar(255))
2 /
Table created.
SQL> create table U_TEST2 (COLUMN_2 varchar(255))
2 /
Table created.
SQL>
SQL> insert all
2 into U_TEST1 (COLUMN_1) values ('QWERTY')
3 into U_TEST1 (COLUMN_1) values ('ASDF')
4 select * from dual
5 /
2 rows created.
SQL> insert all
2 into U_TEST2 (COLUMN_2) values ('Haikus are easy')
3 into U_TEST2 (COLUMN_2) values ('But sometimes they don`t make sense')
4 into U_TEST2 (COLUMN_2) values ('Refrigerator')
5 select * from dual
6 /
3 rows created.
SQL>
SQL> set serverout on
SQL> declare
2 vTest String255List;
3
4 begin
5 vTest := String255List();
6
7 select ut.COLUMN_1
8 bulk collect into vTest
9 from U_TEST1 ut;
10
11 -- a whole bunch of stuff goes on here such that simply unioning the two selects is not an option
12
13 select ut.COLUMN_2
14 bulk collect into vTest
15 from U_TEST2 ut;
16
17 for i in 1 .. vTest.count
18 loop
19 DBMS_OUTPUT.put_line (vTest(i));
20 end loop;
21 end;
22 /
Haikus are easy
But sometimes they don`t make sense
Refrigerator
PL/SQL procedure successfully completed.
SQL>
SQL>
SQL>
SQL> set serverout on
SQL> declare
2 vTest String255List;
3 vTest1 String255List;
4
5 begin
6 vTest := String255List();
7
8 select ut.COLUMN_1
9 bulk collect into vTest1
10 from U_TEST1 ut;
11
12 -- a whole bunch of stuff goes on here such that simply unioning the two selects is not an option
13
14 select ut.COLUMN_2
15 bulk collect into vTest
16 from U_TEST2 ut
17 union all
18 select * from table(vTest1);
19
20 for i in 1 .. vTest.count
21 loop
22 DBMS_OUTPUT.put_line (vTest(i));
23 end loop;
24 end;
25 /
Haikus are easy
But sometimes they don`t make sense
Refrigerator
QWERTY
ASDF
PL/SQL procedure successfully completed.
SQL>
SQL>
我已经将LiveSQL传递给了相关人员。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




