PL/SQL 数组的使用
一、固定数组
1、在模式(schema)级创建VARRAY类型
语法:
CREATE OR REPLACE TYPE varray_type_name IS VARRAY(n) OF <element_type>
其中,
varray_type_name是一个有效的属性名称;n是varray中元素的数量(最大值);element_type是数组元素的数据类型。
可以使用ALTER TYPE语句更改变量的最大大小。
实例:
CREATE OR REPLACE TYPE namesarray IS VARRAY(3) OF VARCHAR2(10);
备注:在Oracle中,一个用户就是一个Schema,表都是建立在Schema中的,也可以理解为每个用户拥有不同的表。一个用户想访问另外一个用户,也就是另外一个schema的表的时候,可以用 username.tablename的形式来访问。
2、在PL/SQL块中创建VARRAY类型
语法:
TYPE varray_type_name IS VARRAY(n) OF <element_type>
实例:
DECLARE
TYPE namesarray IS VARRAY(5) OF VARCHAR2(10);
TYPE gradesarray IS VARRAY(5) OF INTEGER;
names namesarray;
marks gradesarray;
total INTEGER;
BEGIN
names := namesarray('Kavita', 'Pritam', 'Ayan', 'Rishav', 'Aziz');
marks := gradesarray(98, 97, 78, 87, 92);
total := names.count;
dbms_output.put_line('总共有 '|| total || ' 名学生');
FOR i IN 1 .. total LOOP
dbms_output.put_line('姓名: ' || names(i) || ' 成绩: ' || marks(i));
END LOOP;
END; 结果:
总共有 5 名学生
姓名: Kavita 成绩: 98
姓名: Pritam 成绩: 97
姓名: Ayan 成绩: 78
姓名: Rishav 成绩: 87
姓名: Aziz 成绩: 92
注意:
- 在Oracle环境中,varrays的起始索引始终为;
- 可以使用varray类型的构造方法初始化varray元素,该方法与varray具有相同的名称;
- varrays是一维数组;
- varray在声明时自动为NULL,并且必须在引用元素之前初始化它。
二、可变数组
DECLARE
TYPE ORG_TABLE_TYPE IS TABLE OF VARCHAR2(25)
INDEX BY BINARY_INTEGER;
V_ORG_TABLE ORG_TABLE_TYPE;
BEGIN
V_ORG_TABLE(1) := '';
V_ORG_TABLE(2) := '';
V_ORG_TABLE(3) := '';
V_ORG_TABLE(4) := '';
V_ORG_TABLE(5) := '';
FOR i IN V_ORG_TABLE.first .. V_ORG_TABLE.last LOOP
dbms_output.put_line(V_ORG_TABLE(i));
END LOOP;
END;
PL/SQL 数组的使用的更多相关文章
- Oracle数据库之PL/SQL程序设计基础
PL/SQL程序设计基础 一.PL/SQL块结构 前边我们已经介绍了PL/SQL块的结构,再来回顾一下: DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ ...
- Oracle数据库之PL/SQL程序基础设计
一.PL/SQL块结构 前边我们已经介绍了PL/SQL块的结构,再来回顾一下: DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ BEGIN /* * 执 ...
- PL/SQL详细介绍,设置oracle相关
1. 实现参照完整性 指若两个表之间具有主从关系(即主外键关系),当删除主表数据时,必须确保相关的从表数据已经被删除. 当修改主表的主键列数据时,必须确保相关从表数据已经被修改.为了实现级 ...
- PL/SQL之基础篇
参考文献:<Oracle完全学习手册>第11章 1.PL/SQL概述 PL/SQL(Procedure Language/Structuer Query Language)是Oracle对 ...
- PL/SQL — 变长数组
PL/SQL变长数组是PL/SQL集合数据类型中的一种,其使用方法与PL/SQL嵌套表大同小异,唯一的区别则是变长数组的元素的最大个数是有限制的.也即是说变长数组的下标固定下限等于1,上限可以扩展.下 ...
- PL/SQL 嵌套表变长数组和索引表[转]
关于PL/SQL中这三种数组的介绍,不想写了.转一篇日志吧…… 链接:http://www.blogjava.net/decode360/archive/2008/08/08/280825.html ...
- PL/SQL 训练02--集合数组
1. 请列举关联数组.嵌套表.VARRAY三种集合类型的区别区别:1 关联数组只能在plsql中使用,嵌套表,varray可用于sql中,数据库表中的列2 嵌套表,varray必须在使用的时候初始化, ...
- oracle学习之路(四) ---------PL/SQL 表,二维数组(TABLE)
LOB类型 ORACLE提供了LOB (Large OBject)类型.用于存储大的数据对象的类型.ORACLE眼下主要支持BFILE, BLOB, CLOB 及 NCLOB 类型. NCLOB 存储 ...
- Oracle PL/SQL随堂笔记总结
1.pl/sql编程 2.存储过程 3.函数 4.触发器 5.包 6.pl/sql基础 -定义并使用变量 7.pl/sql的进阶 8.oracle的视图 1.pl/sql编程 1.理解oracle的p ...
随机推荐
- Java工程路径及相对路径(转载)
3. 新建文件,默认位于工程目录new File("xxx.txt").getAbsolutePath();例如输出,D:\workspaces\workspace1\myProj ...
- Git使用教程,感觉比较全,所以【转载】
一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...
- 认识dojo
Dojo是一个强大的面向对象JavaScript框架.主要由三大模块组成:Core.Dijit.DojoX.Core提供Ajax,events,packaging,CSS-based querying ...
- 利用Filter实现session拦截
1.在web.xml中配置 <!-- Session监听器 --> <filter> <filter-name>sessionValidateFilter</ ...
- 网站部署中遇到的问题-编译器错误信息: CS0016
问题描述: 访问站点出现错误win7 x64+iis7.5 配置错误:CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\ ...
- 前端自动分环境打包(vue和ant design)
现实中的问题:有时候版本上线的时候,打包时忘记切换环境,将测试包推上正式服务器,那你就会被批了. 期望:在写打包的命令行的时候就觉得自己在打包正式版本,避免推包时候的,不确信自己的包是否正确. 既然有 ...
- 【数据库】5.0 MySQL入门学习(五)——MySQL源码了解及MySQL初始化设置
1.0 MySQL源码目录主要包括:客户端代码.服务端代码.测试工具.其他库文件.当然,看懂源代码得有一定的C语言基础. BUILD:各种平台的编译脚本,可以用来制作各平台的二进制版本 client: ...
- github使用手册
1.git init 2.git add README.md (增加文件夹/文件:git add dir/files) 3.git commit -m "注释内容” 4.git push - ...
- JQuery Tips
另一篇文章 JavaScript Tips 1. 获取span标签的值需要用text(); 2. datepicker控件的‘setDate’属性可用于设置默认值: 3. 使用parseFloat转换 ...
- C/C++函数指针,指针函数的用法,用处
先看函数指针 int func2(int x); /* 声明一个函数 */ int (*q2) (int x); /* 声明一个函数指针 */ q2=func2; /* 将func函数的首地址 ...