e股脑电脑教程网
  • 首 页
  • 操作系统
  • 应用软件
  • 下载工具
  • 影音视频
  • 办公软件
  • 媒体制作
  • 网站建设
  • 平面设计
  • 数据库
  • 程序开发
  • 视频教程
编辑推荐: | 文章搜索:
您现在的位置: e股脑 >> 数据库 >> Oracle教程 >> 集合和成员函数 >> 教程正文
 
教程搜索
 
 
相关教程
  • ORACLE常用Script
  • OracleSupport全球解答的
  • Oracle 中的OOP概念
  • 过程,函数,程序包
  • 异常和游标管理
  • 集合和成员函数
  • Oracle10gR2安裝
  • SQL 的高级应用
  • Install Oracle on Solar
  • Install Oracle9 on RedH
  • Start Console on Oracle
  • oracle自动imp脚本
  • Oracle9i连接sybase的透明
  • 用裸设备来提高Oracle数据
  • 从Oracle迁移到SQL Serve
  • 轻松取得Oracle结构描述句
 
 
赞 助 商
 
 
集合和成员函数
  • 来源:e股脑
  • 点击次数:
  • 更新时间:2007-8-9

集合和成员函数

PL/SQL 表 :

有时也被称为索引表(index-by tables),可以在PL/SQL中使用,能够模仿数组的非永久表。

用法:

1、 定义一个PL/SQL表类型

2、 声明这种类型的变量。

3、 将记录添加到PL/SQL表中,并采用与引用数组元素大体相同的方式引用他们

语法:p233

特点:只能有一列和一个主健。但是可以有无数的行

举例:

set serveroutput on

declare --定义PL/SQL表

type my_text_table_type is table of varchar2(200)

index by binary_integer;

type my_emp_table_type is table of employees%rowtype

index by binary_integer;

l_text_table my_text_table_type; l_emp_table my_emp_table_type;begin l_text_table(1) :=’donny’; l_text_table(2) :=’Chen’; l_emp_table(10).employee_id :=10; l_emp_table(10).first_name :=’Sean’; l_emp_table(10).last_name :=’Dillon’; l_emp_table(10).email :=’donny@hotmail’; l_emp_table(10).hire_date :=sysdate; l_emp_table(10).job_id :=’HR’; l_emp_table(20).employee_id :=20; l_emp_table(20).first_name :=’Chris’; l_emp_table(20).last_name :=’Doo’; l_emp_table(20).email :=’donny@sina’; l_emp_table(20).hire_date :=sysdate-5; l_emp_table(20).job_id :=’IT’; dbms_output.put_line(l_text_table.count); dbms_output.put_line(l_emp_table.count); dbms_output.put_line(l_text_table(1)); dbms_output.put_line(l_text_table(2)); dbms_output.put_line(l_emp_table(1).first_name); dbms_output.put_line(l_emp_table(2).first_name); end;/ 关于索引算子:必须是合法的BINARY_INTEGER,介于­-2的31次幂~2的31次幂 从 PL/SQL 表中删除记录:

declare --定义PL/SQL表

type my_text_table_type is table of varchar2(200)

index by binary_integer;

l_text_table my_text_table_type;

l_empty_table my_text_table_type;

begin

l_text_table(10):=’A value’;

l_text_table(20):=’Another value’;

l_text_table(30):=’third value’;

dbms_output.put_line(l_text_table.count);

l_text_table.DELETE(20);

dbms_output.put_line(l_text_table.count);

l_text_table.DELETE;

dbms_output.put_line(l_text_table.count);

l_text_table(15):=’some text’;

l_text_table(25):=’ some more text’;

dbms_output.put_line(l_text_table.count);

l_text_table:=l_empty_table;

dbms_output.put_line(l_text_table.count);

end;

/

FIRST / NEXT / LAST:

我们知道count返回表中行的数量。

FIRST: 返回PL/SQL表中“第一个”或者最小的索引。 LAST则是最后一个。

NEXT返回PL/SQL表中当前索引的下一个索引。NEXT有一个参数,即当前的索引。

Conn scott/tiger

Set serveroutput on

Declare

type my_text_table_type is table of varchar2(200)

index by binary_integer;

l_text_table my_text_table_type;

l_index number;

begin

for emp_rec in (select * from emp) loop

l_text_table(emp_rec.empno):=emp_rec.ename;

end loop;

l_index:= l_text_table.first;

loop

exit when l_index is null;

dbms_output.put_line(l_index ||’:’|| l_text_table(l_index));


l_index :=l_text_table.next(l_index) ;

end loop;

end;

/

记录:

TYPE <记录名称> IS RECORD(

字段名1 类型;

字段名2 类型;

。。。。。。

);

记录可以拥有任意数目的不同数据类型的列,而PL/SQL表却不是这样的,只能有一列和一个主健。

declare

type location_record_type is record(

street_address varchar2(40),

postal_code varchar2(40),

city varchar2(30),

state_province varchar2(25),

contry_id char(2) not null :=’US’

);

l_my_loc location_record_type;

begin

l_my_loc.street_address:=’Oracle street’;

l_my_loc.postal_code:=’10010’;

l_my_loc.city:=’Reston’;

l_my_loc.state_province:=’CA’;

dbms_output.put_line(l_my_loc.street_address);

dbms_output.put_line(l_my_loc.postal_code);

dbms_output.put_line(l_my_loc.city);

dbms_output.put_line(l_my_loc.state_province);

end;

/

绑定变量:

declare

type Numtab is table of char(15) index by binary_integer;

type Nametab is table of char(25) index by binary_integer;

vnums Numtab;

vname Nametab;

t1 char(5);

t2 char(5);

t3 char(5);

procedure get_time( t out number) is

begin

select to_char(sysdate,’sssss’) into t from dual;

end;

begin

[1] [2] 下一页

  • 上一篇教程: Oracle10gR2安裝
  • 下一篇教程: 异常和游标管理
  •  

    关于本站 | 广告联系 | 版权声明 | 使用帮助

    Copyright © 2004-2008 www.egunao.com All rights reserved.