如何操纵oracle表中的嵌套表列,varray列和对象类型列

来源:百度知道 编辑:UC知道 时间:2024/06/25 12:43:52
create or replace type emp_type as object(
name varchar2(10),salary number(6,2),hiredate date);
/
create or replace type emp_array is table of emp_type;
/
create or replace type emparray2 is varray(20) of emp_type;
/
(1)
create table department (
deptno number(2),dname varchar2(10),employee emp_type);
/
(2)create table depart (
deptno number(2),dname varchar2(10),employee emp_array);
/
(3)create table depart2(
deptno number(2),dname varchar2(10),employee emp_array2);
/
请问怎么往上述3个表中的employee列插入数据,更新数据和检索数据,另:在第三个表中如果要更新和插入employee列的数据,是不是不能只更新和插入单个记录的数据,比如只更新name的数据……

恩,先给你说更新的问题,一次可以更新和插入一笔记录,也可以批量绑定,多笔更新和插入。
给你举个插入数据的例子(多笔记录插入),其它自己琢磨去。其它的细节方面自己去处理吧。

my_temp emp_type;--定义集合变量
begin
for i in 1..10 loop ---初始化赋值
my_temp(i):=i; ---初始化赋值
end loop; ---初始化赋值
forall i in 1..my_temp.count ---insert你要的table里 (这可不是循环哦是批量处理)
insert into employee ---insert你要的table里
values (my_temp(i)) ---insert你要的table里

end;

其它的,都一个模式

INSERT INTO department (deptno,dname,employee) values ('','','')
---里面写上你要插入的数据
更新数据用UPDATE语句
检索数据用SELECT语句
插入不能只插入单个记录的数据,但是更新可以只更新单个记录的数据

这样的回答满意不?