我遇到一个问题,我想使用集合将数据从一个表移动到另一个表,代码在下面。
DECLARE
CURSOR c IS SELECT first_name, last_name, salary FROM hr.employees;
TYPE l_data IS RECORD(fname VARCHAR2(25), lname VARCHAR2(25), salary NUMBER(9));
TYPE t_nt IS TABLE OF l_data;
v_lookup t_nt:=t_nt();
v_increment number:=1;
i NUMBER(2);
BEGIN
open c;
loop
fetch c BULK COLLECT INTO v_lookup;
FORALL i IN 1..v_lookup.COUNT
INSERT INTO t2 VALUES v_lookup(i);
EXIT WHEN c%NOTFOUND;
commit;
END LOOP;
close c;
END;
CREATE TABLE t2 AS SELECT first_name, last_name, salary FROM hr.employees WHERE 1 = 2;
select * from t2;
之后,当我从t2中选择*时,它什么也没有显示。 所以我不知道会发生什么。 最后,我如何使用buck_exception来处理异常。有人可以给我看一个例子吗?
答案 0 :(得分:0)
WHERE 1 = 2
语句中的WHERE子句中有CREATE TABLE
。这将始终评估为false,因此您永远不会在t2
中获取数据。