oracle 嵌套表 例子,oracle 嵌套表

嵌套表:在一个表中还包含另外一个子表

首先为嵌套表指定类型,该类型需要单独定义

SQL> CREATE TYPE project_ty AS OBJECT(

priod NUMBER(4),

proname VARCHAR2(30),

prodate DATE

);

/

该类型创建成后,不意味着此类型能够直接使用,要为此类型指定一个名称

SQL> CREATE TYPE project_nt AS TABLE OF project_ty

/

这样就可以使用project_nt表示project_ty类型,现在根据此类型创建department表

SQL> CREATE TABLE department(

deptno  NUMBER(2) PRIMARY

KEY,

dname  VARCHAR2(50) NOT

NULL,

projects project_nt

)NESTED TABLE projects STORE AS project_nt_tab_temp;

如果要进行数据插入的话

SQL> INSERT INTO department(deptno,dname,projects)

VALUES(

1,'tech',

project_nt(

project_ty(1001,'ERP',SYSDATE),

project_ty(1002,'CRM',SYSDATE)

)

);

查询部门表,可以返回多个项目

SQL> SELECT * FROM department;

如果需要查看一个部门的全部项目的话,查询嵌套表

SQL> SELECT * FROM TABLE

(SELECT projects FROM department WHERE

deptno=1);

更新编号为1001的项目名称

SQL> UPDATE TABLE (SELECT projects FROM department WHERE

deptno=1) pro

SET VALUES(pro)=project_ty('1001','APR',SYSDATE) WHERE

pro.proid=1001;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值