关闭

plsql中索引表(pls/ql表)的使用

947人阅读 评论(0) 收藏 举报
分类:

pl/sql表,又称为索引表,在oracle9i以后就被称之为pl/sql表了。它是plsql语言数据类型中集合类型。Pl/sql是plsql所特有的、单维的、无容量限制的、离散的存储的列表结构。用于存储多行单列的数据。

语法:

Type <表类型名> is table of <数据类型> index by <索引的类型>;

<表变量名> <表类型名>;

注意:‘表类型名’是用户自己定义的,‘数据类型’是表中字段的数据类型 ,‘索引的类型’现在可以是binary_integer,varchar2。‘表变量名’也是用户自己定义的。

例1:

       我的oracle数据库中有这么一个表emp,

表中字段有empno(number型的),empname(varchar2型的)

 

  1. declare  
  2.        type name_index is table of emp.empname%type index by binary_integer;  
  3.        names name_index;  
  4.        type charindex is table of emp.empname%type index by varchar2(10);  
  5.        names2 charindex;  
  6.        begin  
  7.        names(1):='love';  
  8.        names(2):='u';  
  9.        names2('girl'):='Nora';  
  10.        names2('boy'):='Alent';  
  11.        dbms_output.put_line(names(1));  
  12.        --dbms_output.put_line(names(3));  
  13.        dbms_output.new_line;  
  14.        dbms_output.put_line(names(2));  
  15.        dbms_output.put_line(names2('girl'));  
  16.        dbms_output.put_line(names2('boy'));  
  17.        end;  

输出结果如下:

love

u
Nora
Alent

 

 

例2:

  1. declare  
  2.        type name_index is table of emp.empname%type index by binary_integer;  
  3.        names name_index;  
  4.        type charindex is table of emp.empname%type index by varchar2(10);  
  5.        names2 charindex;  
  6.        begin  
  7.        select empname into names(1) from emp where empno=10;  
  8.        select empname into names2('name') from emp where empno=100;  
  9.        dbms_output.put_line(names(1));  
  10.        dbms_output.put_line(names2('name'));  
  11.        --dbms_output.put_line(names(3));  
  12.        
  13.        end;  


输出结果:

郭丽

Nora

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:193163次
    • 积分:3846
    • 等级:
    • 排名:第8609名
    • 原创:193篇
    • 转载:59篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论
  • hive上删除列

    baidu_35946349: 你知道吗 我是专门为了吐槽你 才登陆上来的,看了你的博客不知道要坑死多少人,反正我看完是笑了