|
本帖最后由 weijunbo83 于 2014-8-7 10:59 编辑
我的数据库版本是Oracle Database 10g Enterprise Edition Release 10.2.0.1.0, 在scott用户下执行如下语句,用于将删除的记录数据保存在nasted table中,使用record可以成功,没问题
DECLARE
TYPE emp_rec_type IS RECORD
(
empno emp.empno%TYPE
,ename emp.ename%TYPE
,hiredate emp.hiredate%TYPE
);
TYPE nested_emp_type IS TABLE OF emp_rec_type;
emp_tab nested_emp_type;
BEGIN
DELETE FROM emp
WHERE deptno = 20
RETURNING empno, ename, hiredate -->使用returning 返回这几个列
BULK COLLECT INTO emp_tab; -->将前面返回的列的数据批量插入到集合变量
end; |
但是,如果我这里将record改为使用object就会出现问题,提示:
ora-00947:not enough values;代码如下:
create or replace type emp_rec_type IS object
(
empno NUMBER(4)
,ename VARCHAR2(10)
,hiredate DATE
);
-------------------------------------------------------
DECLARE
TYPE nested_emp_type IS TABLE OF emp_rec_type;
emp_tab nested_emp_type;
BEGIN
DELETE FROM emp
WHERE deptno = 20
RETURNING empno, ename, hiredate -->使用returning 返回这几个列
BULK COLLECT INTO emp_tab; -->将前面返回的列的数据批量插入到集合变量
end;
|
一时搞不清楚原因,通过搜索资料未果,请大牛帮我解惑;这个和数据库版本有关系吗?
|
|