首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

plsql-聚合-关联数组(下标为数字、字符串)

2013-10-24 
plsql-集合-关联数组(下标为数字、字符串)--*******集合1--关联数组(下标为数字类型)/*plsql集合类型有三种

plsql-集合-关联数组(下标为数字、字符串)

--*******集合1--关联数组(下标为数字类型)/*plsql集合类型有三种:下面是第一种:关联数组*/declare --定义一个数组类型 --mytable:自己定义的类型名字 --varchar2:类型mytable中元素的类型 --binary_integer:下标索引的数据类型 type mytable is table of varchar2(1000) index by binary_integer; v_mytable mytable;  --用刚创建的类型,定义一个变量begin v_mytable(-1) := '河南省汝州市'; v_mytable(0)  := '的'; v_mytable(1)  := 'S'; --设定下标为1的元素为“chen” 注意元素的下标无限制,可以为负数 v_mytable(2)  := 'U'; v_mytable(3)  := 'P'; v_mytable(4)  := 'A'; v_mytable(5)  := 'N'; dbms_output.put_line('数组元素的总数是:' ||  v_mytable.count); --注意first,last只是取元素的下标值,并不是取元素的值,如下: dbms_output.put_line('第一个元素下标是:' ||  v_mytable.first || '--第一个元素是:' || v_mytable(v_mytable.first)); dbms_output.put_line('最后一个元素下标是:' ||  v_mytable.last || '---最后一个元素是:' || v_mytable(v_mytable.last));  --for循环取数组中的值 for v_count in v_mytable.first..v_mytable.last  loop   dbms_output.put_line(v_mytable(v_count)); end loop;end;


输出:
数组元素的总数是:7
第一个元素下标是:-1--第一个元素是:河南省汝州市
最后一个元素下标是:5---最后一个元素是:N
河南省汝州市

S
U
P
A
N

PL/SQL 过程已成功完成。


--*******集合2--关联数组(下标为字符串类型)/*这种类型相当于java中的map  键-值对*/declare   type string_table is table of varchar2(30) index by varchar2(30);  v_mytable string_table;  v_record emp%rowtype;  cursor c is select ename,job from emp;  keyTemp varchar2(30); --集合中存放键的临时变量begin  --读取emp表中的前三条记录,存储在集合v_mytable中,最后遍历该集合。  for c_temp in c  loop      v_mytable(c_temp.ename) := c_temp.job;  end loop;  dbms_output.put_line(v_mytable.count); --集合中元素(键值对)总数  dbms_output.put_line(v_mytable.first); --集合中第一个元素的键  dbms_output.put_line(v_mytable.last);  --集合中最后一个元素的键    --//遍历  keyTemp = v_mytable.first;     --取集合中第一个键值对的键赋给临时变量  while (keyTemp is not null) loop --如果第一个元素的键不为空进行循环    dbms_output.put_line('键为: ' || keyTemp || '  值为:' || v_mytable(keyTemp));    keyTemp := v_mytable.next(keyTemp);  end loop;end;  

输出为:
14
ADAMS
WARD
键为: ADAMS  值为:CLERK
键为: ALLEN  值为:SALESMAN
键为: BLAKE  值为:MANAGER
键为: CLARK  值为:MANAGER
键为: FORD  值为:ANALYST
键为: JAMES  值为:CLERK
键为: JONES  值为:MANAGER
键为: KING  值为:PRESIDENT
键为: MARTIN  值为:SALESMAN
键为: MILLER  值为:CLERK
键为: SCOTT  值为:ANALYST
键为: SMITH  值为:CLERK
键为: TURNER  值为:SALESMAN
键为: WARD  值为:SALESMAN

PL/SQL 过程已成功完成。

热点排行