查看: 3712|回复: 2

关于oracle中record与object的疑惑

[复制链接]
论坛徽章:
1
ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14
跳转到指定楼层
1#
发表于 2014-8-7 10:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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;


一时搞不清楚原因,通过搜索资料未果,请大牛帮我解惑;这个和数据库版本有关系吗?
论坛徽章:
169
SQL数据库编程大师
日期:2016-01-13 10:30:43SQL极客
日期:2013-12-09 14:13:35SQL大赛参与纪念
日期:2013-12-06 14:03:45最佳人气徽章
日期:2015-03-19 09:44:03现任管理团队成员
日期:2015-08-26 02:10:00秀才
日期:2015-07-28 09:12:12举人
日期:2015-07-13 15:30:15进士
日期:2015-07-28 09:12:58探花
日期:2015-07-28 09:12:58榜眼
日期:2015-08-18 09:48:03
2#
发表于 2014-8-7 12:14 | 只看该作者
这样当然不行,object的类型,你要RETURNING emp_rec_type(empno, ename, hiredate)

使用道具 举报

回复
论坛徽章:
1
ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14
3#
 楼主| 发表于 2014-8-8 09:33 | 只看该作者
Naldonado 发表于 2014-8-7 12:14
这样当然不行,object的类型,你要RETURNING emp_rec_type(empno, ename, hiredate)

原来是这样,谢谢了。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表