记录表TABLE的使用详解
定义记录表(或索引表)数据类型与记录类型相似,但它是对记录类型的扩展。它可以处理多行记录,类似于高级中的二维数组,使得可以在PL/SQL中模仿数据库中的表。
定义记录表类型的语法如下:
|
1
2
|
TYPE table_name IS TABLE OF element_type [NOT NULL]INDEX BY [BINARY_INTEGER | PLS_INTEGER | VARRAY2]; |
记录表中的方法:
|
方法 |
描述 |
|
EXISTS(n) |
如果集合的第n个成员存在,则返回true |
|
COUNT |
返回已经分配了存储空间即赋值了的成员数量 |
|
FIRST LAST |
FIRST:返回成员的最低下标值 LAST:返回成员的最高下标值 |
|
PRIOR(n) |
返回下标为n的成员的前一个成员的下标。如果没有则返回NULL |
|
NEXT(N) |
返回下标为n的成员的后一个成员的下标。如果没有则返回NULL |
|
TRIM |
TRIM:删除末尾一个成员 TRIM(n) :删除末尾n个成员 |
|
DELETE |
DELETE:删除所有成员 DELETE(n) :删除第n个成员 DELETE(m, n) :删除从n到m的成员 |
|
EXTEND |
EXTEND:添加一个null成员 EXTEND(n):添加n个null成员 EXTEND(n,i):添加n个成员,其值与第i个成员相同 |
|
LIMIT |
返回在varray类型变量中出现的最高下标值 |
例1:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
DECLARE TYPE dept_table_type IS TABLE OF dept%ROWTYPE INDEX BY BINARY_INTEGER; my_dname_table dept_table_type; v_count number(2) :=4;BEGIN FOR int IN 1 .. v_count LOOP SELECT * INTO my_dname_table(int) FROM dept WHERE deptno=int*10; END LOOP; FOR int IN my_dname_table.FIRST .. my_dname_table.LAST LOOP DBMS_OUTPUT.PUT_LINE('Department number: '||my_dname_table(int).deptno); DBMS_OUTPUT.PUT_LINE('Department name: '|| my_dname_table(int).dname); END LOOP;END; |
例2&3:按一维数组使用记录表例 & 按二维数组使用记录表
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
DECLARE--定义记录表数据类型 TYPE reg_table_type IS TABLE OF varchar2(25) INDEX BY BINARY_INTEGER;--声明记录表数据类型的变量 v_reg_table REG_TABLE_TYPE; BEGIN v_reg_table(1) := 'Europe'; v_reg_table(2) := 'Americas'; v_reg_table(3) := 'Asia'; v_reg_table(4) := 'Middle East and Africa'; v_reg_table(5) := 'NULL'; DBMS_OUTPUT.PUT_LINE('地区名称:'||v_reg_table (1)||'、' ||v_reg_table (2)||'、' ||v_reg_table (3)||'、' ||v_reg_table (4)); DBMS_OUTPUT.PUT_LINE('第5个成员的值:'||v_reg_table(5));END; |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
DECLARE--定义记录表数据类型 TYPE emp_table_type IS TABLE OF employees%ROWTYPE INDEX BY BINARY_INTEGER;--声明记录表数据类型的变量 v_emp_table EMP_TABLE_TYPE;BEGIN SELECT first_name, hire_date, job_id INTO v_emp_table(1).first_name,v_emp_table(1).hire_date, v_emp_table(1).job_id FROM employees WHERE employee_id = 177; SELECT first_name, hire_date, job_id INTO v_emp_table(2).first_name,v_emp_table(2).hire_date, v_emp_table(2).job_id FROM employees WHERE employee_id = 178; DBMS_OUTPUT.PUT_LINE('177雇员名称:'||v_emp_table(1).first_name ||' 雇佣日期:'||v_emp_table(1).hire_date ||' 岗位:'||v_emp_table(1).job_id); DBMS_OUTPUT.PUT_LINE('178雇员名称:'||v_emp_table(2).first_name ||' 雇佣日期:'||v_emp_table(2).hire_date ||' 岗位:'||v_emp_table(2).job_id);END; |
记录表TABLE的使用详解的更多相关文章
- ORACLE中RECORD、VARRAY、TABLE的使用详解(转)
原文地址:ORACLE中RECORD.VARRAY.TABLE的使用详解
- Bootstrap Table使用方法详解
http://www.jb51.net/article/89573.htm bootstrap-table使用总结 bootstrap-table是在bootstrap-table的基础上写出来的,专 ...
- Bootstrap Table 表格参数详解
表格参数 名称 标签 类型 默认 描述 - data-toggle String 'table' 不用写 JavaScript 直接启用表格. classes data-class ...
- UITableView回调和table相关成员方法详解
http://blog.csdn.net/kingsley_cxz/article/details/9123959 1.UITableView的datasource实现: //回调获取每个sectio ...
- Flutter 布局(九)- Flow、Table、Wrap详解
本文主要介绍Flutter布局中的Flow.Table.Wrap控件,详细介绍了其布局行为以及使用场景,并对源码进行了分析. 1. Flow A widget that implements the ...
- Element table使用技巧详解
1.控制table某些行数不显示 下载附件的需求,有些行有附件,有些没有,所以需要过滤,重点是:Array.filter()使用 <el-card :body-style="{ pad ...
- Bootstrap Table的使用详解
Bootstrap Table是基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选.多选.排序.分页,以及编辑.导出.过滤(扩展)等等的功能.接下来我们来介绍B ...
- lua table操作实例详解
lua_gettable lua_getglobal(L, "mytable") <== push mytable lua_pushnumber(L, 1) & ...
- 11、mysql索引详解
1.索引介绍: 2.建立索引的方法: 注意:索引名称不要相同: (1)在建表的时候,可以增加主键索引的语句如下: 1)例一: create table student1 ( id int(4) not ...
随机推荐
- Unity GetComponentsInChildren
1 Component.GetComponentsInChildren 和 GameObject.GetComponentsInChildren 一样吗? API上解释一样. 2. //拿到游戏对象 ...
- (转)stty 命令说明及使用讲解
stty 命令说明及使用讲解 UNIX系统的命令很多,但是巧妙使用命令的方法更多.随着经验的积累和观察学习其他用户的实践,我们也可学会解决特殊问题的方法.这里谈谈自己使用UNIX系统中stty ...
- web.xml文件配置详解以及实例说明
1.web.xml学名叫部署描述符文件,是在Servlet规范中定义的,是web应用的配置文件. 2.部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出 ...
- Mysql数据库常用操作整理
0.说明 MySQL数据库是一个十分轻便的数据库管理系统,相比大型的数据库管理系统如Oracle,MySQL更拥有轻便.灵活.开发速度快的特色,更适用于中小型数据的存储与架构,被数以万计的网站采用.从 ...
- sqlserverToXML
--raw模式 以属性的形式展示select * from goods for xml rawselect *from goods for xml raw('goods') --修改节点名称selec ...
- GitHub安装缓慢甚至下载失败的解决办法
1.打开控制面板→ Internet 选项→“安全”选项卡. 2.选择“受信任的站点”→点击“站点”按钮. 3.弹出的窗口中的文本框中输入点击“添加” https://github-windows.s ...
- iOS 时间戳转成今天,上午,下午,星期几,几月几日,某年某月某日
项目中有聊天功能,老板让聊天的时间转换成和 QQ 的聊天时间一样的格式, 研究了一下,来分析下 QQ 的聊天格式时间 代码: 会话列表显示的时间 如需转成24小时制,需要使用 HH //时间显示内容 ...
- 《Head First 设计模式》之状态模式——糖果机
状态模式(State) ——允许对象在内部状态时改变它的行为,对象看起来好像修改了它的类. 策略模式与状态模式的区别 状态主体(拥有者)持有状态对象,运行时可以通过动态指定状态对象来改变类的行为 策略 ...
- centos6 hadoop2.7.3分布式搭建
一.hadoop下载 apache所有的project都有自己的域名,可以通过apache官网下的project list去找,也可以直接定位project.apache.org,比如hadoop直接 ...
- python随笔--根据号码查询归属地
给定一组(串)数据,根据输入得号码,查询归属地 def num_info(num): info0 = """5583|1860100|010|北京市|北京联通GSM卡 5 ...