oracle学习笔记(三)

表类型有两个部分:主键部分与表类容部分。
   可以根据表的主键来搜索表的内容(数据)。表的数据可以不一样。
   创建表类型的格式:
   Type 表类型名 is table of(
………..

INDEX BY BINARY_INTEGER;
表类型变量 表类型名;
   或者:
    Type 表类型命 is table of 表名%rowtype;
表类型可以存放复合的数据类型,通过索引来找到需要的数据,相关方法:
EXISTS(n):用于判断PL/SQL表中指定的元素是否存在。
COUNT:  返回一个PL/SQL表当前包含的元素的数量。
FIRST:    在PL/SQL表中返回第一个索引编号
LAST:    在PL/SQL表中返回最后一个索引编号
PRIOR(N):在PL/SQL表中返回索引n之前的索引编号。
NEXT(N):在PL/SQL表中返回索引n之后的索引编号。
EXTEND仅在PL/SQL表后添加一个NULL元素。
EXTEND( n)向PL/SQL表后面添加n个元素。
EXTEND( n,i)向PL/SQL表后面添加n个i元素的副本。
TRIM把一个元素从一个PL/SQ表的最后移开。
TRIM(n)把元素n从一个PL/SQ表的最后移开。
DELETE把所有的元素从PL/SQ表中移开。
DELETE(n)把第n 个元素从PL/SQ表中移开。
DELETE(m,n)从PL/SQ表中移开在范围(m,n)中的所有元素。
举例:
Set serveroutput on
declare
  type person_tabel_type is table of person%rowtype index by  binary_integer;
  my_type person_tabel;
  v_count number(4) :=95003;
begin
  for i 95001..v_count loop
    select * into my_type(i)  
    from person
    where number=I;
  end loop;
  for i in my_type.first... my_type.last loop
    dbms_output_print_line(my_type(i).username);
    dbms_output_print_line(my_type(i).sex);
    dbms_output_print_line(my_type(i).age);
    dbms_output_print_line(my_type(i).number);
  end loop;
end;
/

你可能感兴趣的:(oracle,sql)