求:oracle10g PL/SQL集合的用法

来源:百度知道 编辑:UC知道 时间:2024/06/20 14:54:34
本人初学oracle10g。由于是自学再加上手头资料少,很多也许浅显易懂的东西都不是很明白。比如PL/SQL集合的用法……麻烦高手指教一下:
1,declare
type ename_table_type is table of emp.ename%type index by binary_integer;
begin
select ename into ename_table(-1) from emp where empno=&no;
dbms_output.put_line('雇员名:'||ename_table(-1));
end;

不明白:‘ename_table(-1)’,这里的-1是什么意思,是下标?为什么是-1,别的行吗?下标到底是什么用法?
binary_integer和pls_integer我知道是表示数据类型的,但是两个有什么区别吗?
2,declare
type area_table_type is table of number index by varchar2(10);
area_table area_table_type;
begin
area_table('北京'):=1;
area_table('广州'):=2;
area_table('上海'):=3;
dbms_output.put_line('第一个元素:'||area_table.first);
dbms_output.put_line('最后一个元素:'||area_table.last);
end;
整个都不太明白。上面的1,2,3表示什么的?为什么返回的结果是'北京和上海'?

3,declare
type ename_table_type is table of emp.ename%type;
eneme_table ename_table_type;
begin
ename_table:=ename

1. -1就像数组的下标 在索引表中 下标是不限制范围的。
2.北京 上海 广州 也是下标 。area_table_type是索引表类型,area_table是area_table_type类型的变量。该块的意思是将1 2 3 分别放到下标为 北京 上海 广州的索引变量中,然后在输出第一个元素和最后一个元素的值。
3.MARY 是放入表变量中的字符串。eneme_table 是定义为ename_table_type 类型的标变量,表中存放的数据类型和emp表中的ename字段类型一致。
select语句的意思是将empno=&no的ename的值放入表变量ename_table的第2个位置,然后再输出该变量中的值。

ename_table(-1)
起到计数的作用,别的数字也可以,一般有0
area_table('北京'):=1;
area_table('广州'):=2;
area_table('上海'):=3;
:=点表示把后面的值赋值给前面的
主要为first和last服务的 1是first 3是last
返回的结果是'北京和上海'

ename_table:=ename_table_type('MARY','MARY','MARY');
就是向表中插入数据的,