- Access 教程
- 关于 Microsoft Access - Access 教程
- Access 创建数据库 - Access 教程
- Access 创建表 - Access 教程
- Access 设计视图 - Access 教程
- Access 添加数据 - Access 教程
- Access 创建表单 - Access 教程
- Access 修改表单 - Access 教程
- Access 创建查询 - Access 教程
- Access 修改查询 - Access 教程
- Access 创建关联关系 - Access 教程
- Access SQL 视图 - Access 教程
- Access 创建宏 - Access 教程
- Access 数据库导出到 excel - Access 教程
- DB2 教程
- DB2 服务器安装 - DB2 教程
- DB2 实例 - DB2 教程
- DB2 数据库 - DB2 教程
- DB2 缓冲池 - DB2 教程
- DB2 表空间 - DB2 教程
- DB2 存储组 - DB2 教程
- DB2 模式 - DB2 教程
- DB2 数据类型 - DB2 教程
- DB2 表 - DB2 教程
- DB2 别名/alias - DB2 教程
- DB2 约束 - DB2 教程
- DB2 索引 - DB2 教程
- DB2 触发器 - DB2 教程
- DB2 序列 - DB2 教程
- DB2 视图 - DB2 教程
- DB2 与 XML - DB2 教程
- DB2 备份和恢复 - DB2 教程
- DB2 数据库安全 - DB2 教程
- DB2 角色 - DB2 教程
- DB2 LDAP - DB2 教程
- Hadoop 教程
- Hadoop 大数据解决方案 - Hadoop 教程
- Hadoop 介绍快速入门 - Hadoop 教程
- Hadoop 安装 - Hadoop 教程
- Hadoop HDFS 入门 - Hadoop 教程
- MapReduce 简介和入门 - Hadoop 教程
- Hadoop 程序入门实践 - Hadoop 教程
- HBase 教程
- HBase 架构 - HBase 教程
- HBase 安装 - HBase 教程
- HBase Shell - HBase 教程
- HBase 常用命令 - HBase 教程
- HBase Admin API - HBase 教程
- HBase 创建表 - HBase 教程
- HBase 列出表 - HBase 教程
- HBase 禁用表 - HBase 教程
- HBase 启用表 - HBase 教程
- HBase 表描述和修改 - HBase 教程
- HBase Exists - HBase 教程
- HBase 删除表 - HBase 教程
- HBase 关闭 - HBase 教程
- HBase 客户端 API - HBase 教程
- HBase 创建数据 - HBase 教程
- HBase 更新数据 - HBase 教程
- HBase 读取数据 - HBase 教程
- HBase 删除数据 - HBase 教程
- HBase 扫描 - HBase 教程
- HBase 计数和截断 - HBase 教程
- HBase 安全 - HBase 教程
- Hive 教程
- Hive 安装 - Hive 教程
- Hive 数据类型 - Hive 教程
- Hive 创建数据库 - Hive 教程
- Hive 删除数据库 - Hive 教程
- Hive 创建表 - Hive 教程
- Hive 修改表 - Hive 教程
- Hive 删除表 - Hive 教程
- Hive 分区 - Hive 教程
- Hive 内置运算符 - Hive 教程
- Hive 内置函数 - Hive 教程
- Hive 视图和索引 - Hive 教程
- HiveQL Select Where - Hive 教程
- HiveQL Select Order By - Hive 教程
- HiveQL Select Group By - Hive 教程
- HiveQL Select Join - Hive 教程
- Memcached 教程
- Memcached 入门
- Memcached 简介
- Memcached 安装
- Memcached 连接
- Memcached 存储命令
- Memcached set 命令
- Memcached add 命令
- Memcached replace 命令
- Memcached append 命令
- Memcached prepend 命令
- Memcached CAS 命令
- Memcached 查找命令
- Memcached get 命令
- Memcached gets 命令
- Memcached delete 命令
- Memcached incr 与 decr 命令
- Memcached 统计命令
- Memcached stats 命令
- Memcached stats items 命令
- Memcached stats slabs 命令
- Memcached stats sizes 命令
- Memcached flush_all 命令
- Memcached 实例
- Java 连接 Memcached 服务
- PHP 连接 Memcached 服务
- MongoDB 教程
- NoSQL 简介
- 什么是 MongoDB ?
- window 平台安装 MongoDB
- Linux 平台安装 MongoDB
- MongoDB 数据库,对象,集合
- MongoDB - 连接
- PHP 安装 MongoDB 扩展驱动
- MongoDB 数据插入
- MongoDB 使用 update() 函数更新数据
- MongoDB 使用- remove() 函数删除数据
- MongoDB 查询
- MongoDB 条件操作符
- MongoDB 条件操作符 - $type
- MongoDB Limit 与 Skip 方法
- MongoDB 排序
- MongoDB 索引
- MongoDB 聚合
- MongoDB 复制(副本集)
- MongoDB 分片
- MongoDB 备份(mongodump) 与恢复(mongorerstore)
- MongoDB 监控
- MongoDB Java
- MongoDB PHP
- MongoDB 关系
- MongoDB 数据库引用
- MongoDB 覆盖索引查询
- MongoDB 查询分析
- MongoDB 原子操作
- MongoDB 高级索引
- MongoDB 索引限制
- MongoDB ObjectId
- MongoDB Map Reduce
- MongoDB 全文检索
- MongoDB 正则表达式
- MongoDB 管理工具: Rockmongo
- MongoDB GridFS
- MongoDB 固定集合(Capped Collections)
- MongoDB 自动增长
- MySQL 教程
- MySQL 教程
- MySQL 安装
- MySQL 管理
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- MySQL 排序
- Mysql Join 的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER 命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- MySQL 元数据
- MySQL 序列使用
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- PL/SQL 教程
- PL/SQL 环境安装设置 - PL/SQL 教程
- PL/SQL 基本语法 - PL/SQL 教程
- PL/SQL 数据类型 - PL/SQL 教程
- PL/SQL 变量 - PL/SQL 教程
- PL/SQL 常量和文字 - PL/SQL 教程
- PL/SQL 运算符 - PL/SQL 教程
- PL/SQL 条件控制 - PL/SQL 教程
- PL/SQL 循环 - PL/SQL 教程
- PL/SQL 字符串 - PL/SQL 教程
- PL/SQL 数组 - PL/SQL 教程
- PL/SQL 过程 - PL/SQL 教程
- PL/SQL 函数 - PL/SQL 教程
- PL/SQL 游标 - PL/SQL 教程
- PL/SQL 记录 - PL/SQL 教程
- PL/SQL 异常 - PL/SQL 教程
- PL/SQL 触发器 - PL/SQL 教程
- PL/SQL 包 - PL/SQL 教程
- PL/SQL 集合 - PL/SQL 教程
- PL/SQL 事务 - PL/SQL 教程
- PL/SQL 日期及时间 - PL/SQL 教程
- PL/SQL DBMS 输出 - PL/SQL 教程
- PL/SQL 面向对象 - PL/SQL 教程
- Redis 教程
- Redis 简介
- Redis 安装
- Redis 配置
- Redis 数据类型
- Redis 命令
- Redis 数据备份与恢复
- Redis 安全
- Redis 性能测试
- Redis 客户端连接
- Redis 管道技术
- Redis 分区
- Java 使用 Redis
- PHP 使用 Redis
- Redis 命令参考
- Key(键)
- DEL
- DUMP
- EXISTS
- EXPIRE
- EXPIREAT
- KEYS
- MIGRATE
- MOVE
- OBJECT
- PERSIST
- PEXPIRE
- PEXPIREAT
- PTTL
- RANDOMKEY
- RENAME
- RENAMENX
- RESTORE
- SORT
- TTL
- TYPE
- SCAN
- String(字符串)
- APPEND
- BITCOUNT
- BITOP
- DECR
- DECRBY
- GET
- GETBIT
- GETRANGE
- GETSET
- INCR
- INCRBY
- INCRBYFLOAT
- MGET
- MSET
- MSETNX
- PSETEX
- SET
- SETBIT
- SETEX
- SETNX
- SETRANGE
- STRLEN
- Hash(哈希表)
- HDEL
- HEXISTS
- HGET
- HGETALL
- HINCRBY
- HINCRBYFLOAT
- HKEYS
- HLEN
- HMGET
- HMSET
- HSET
- HSETNX
- HVALS
- HSCAN
- List(列表)
- BLPOP
- BRPOP
- BRPOPLPUSH
- LINDEX
- LINSERT
- LLEN
- LPOP
- LPUSH
- LRANGE
- LREM
- LSET
- LTRIM
- RPOP
- RPOPLPUSH
- RPUSH
- RPUSHX
- Set(集合)
- SADD
- SCARD
- SDIFF
- SDIFFSTORE
- SINTER
- SINTER
- SINTERSTORE
- SISMEMBER
- SMEMBERS
- SMOVE
- SPOP
- SRANDMEMBER
- SREM
- SUNION
- SUNIONSTORE
- SSCAN
- SortedSet(有序集合)
- ZADD
- ZCARD
- ZCOUNT
- ZINCRBY
- ZRANGE
- ZRANGEBYSCORE
- ZRANK
- ZREM
- ZREMRANGEBYRANK
- ZREMRANGEBYSCORE
- ZREVRANGE
- ZREVRANGEBYSCORE
- ZREVRANK
- ZSCORE
- ZUNIONSTORE
- ZINTERSTORE
- ZSCAN
- Pub/Sub(发布/订阅)
- PSUBSCRIBE
- PUBLISH
- PUBSUB
- PUNSUBSCRIBE
- SUBSCRIBE
- UNSUBSCRIBE
- Transaction(事务)
- DISCARD
- EXEC
- MULTI
- UNWATCH
- WATCH
- Script(脚本)
- EVAL
- EVALSHA
- SCRIPT EXISTS
- SCRIPT FLUSH
- SCRIPT KILL
- SCRIPT LOAD
- Connection(连接)
- AUTH
- ECHO
- PING
- QUIT
- SELECT
- Server(服务器)
- BGREWRITEAOF
- BGSAVE
- CLIENT GETNAME
- CLIENT KILL
- CLIENT LIST
- CLIENT SETNAME
- CONFIG GET
- CONFIG RESETSTAT
- CONFIG REWRITE
- CONFIG SET
- DBSIZE
- DEBUG OBJECT
- DEBUG SEGFAULT
- FLUSHALL
- FLUSHDB
- INFO
- LASTSAVE
- MONITOR
- PSYNC
- SAVE
- SHUTDOWN
- SLAVEOF
- SLOWLOG
- SYNC
- TIME
- SQL 教程
- SQL 基础
- SQL 简介
- SQL 语法
- SQL SELECT 语句
- SQL SELECT DISTINCT 语句
- SQL WHERE 子句
- SQL AND & OR 运算符
- SQL ORDER BY 子句
- SQL INSERT INTO 语句
- SQL UPDATE 语句
- SQL DELETE 语句
- SQL 高级
- SQL TOP 子句
- SQL LIKE 操作符
- SQL 通配符
- SQL IN 操作符
- SQL BETWEEN 操作符
- SQL Alias(别名)
- SQL JOIN
- SQL INNER JOIN 关键字
- SQL LEFT JOIN 关键字
- SQL RIGHT JOIN 关键字
- SQL FULL JOIN 关键字
- SQL UNION 和 UNION ALL 操作符
- SQL SELECT INTO 语句
- SQL CREATE DATABASE 语句
- SQL CREATE TABLE 语句
- SQL 约束 (Constraints)
- SQL NOT NULL 约束
- SQL UNIQUE 约束
- SQL PRIMARY KEY 约束
- SQL FOREIGN KEY 约束
- SQL CHECK 约束
- SQL DEFAULT 约束
- SQL CREATE INDEX 语句
- SQL 撤销索引、表以及数据库
- SQL ALTER TABLE 语句
- SQL AUTO INCREMENT 字段
- SQL VIEW(视图)
- SQL 函数
- SQL Date 函数
- SQL NULL 值
- SQL NULL 函数
- SQL 数据类型
- SQL 服务器 - RDBMS
- SQL 函数
- SQL AVG 函数
- SQL COUNT() 函数
- SQL FIRST() 函数
- SQL LAST() 函数
- SQL MAX() 函数
- SQL MIN() 函数
- SQL SUM() 函数
- SQL GROUP BY 语句
- SQL HAVING 子句
- SQL UCASE() 函数
- SQL LCASE() 函数
- SQL MID() 函数
- SQL LEN() 函数
- SQL ROUND() 函数
- SQL NOW() 函数
- SQL FORMAT() 函数
- SQL 快速参考
- SQLite 教程
- SQLite 基础
- SQLite 简介
- SQLite 安装
- SQLite 命令
- SQLite 语法
- SQLite 数据类型
- SQLite 创建数据库
- SQLite 附加数据库
- SQLite 分离数据库
- SQLite 创建表
- SQLite 删除表
- SQLite Insert 语句
- SQLite Select 语句
- SQLite 运算符
- SQLite 表达式
- SQLite Where 子句
- SQLite AND/OR 运算符
- SQLite Update 语句
- SQLite Delete 语句
- SQLite Like 子句
- SQLite Glob 子句
- SQLite Limit 子句
- SQLite Order By
- SQLite Group By
- SQLite Having 子句
- SQLite Distinct 关键字
- SQLite 高级
- SQLite PRAGMA
- SQLite 约束
- SQLite Joins
- SQLite Unions 子句
- SQLite NULL 值
- SQLite 别名
- SQLite 触发器(Trigger)
- SQLite 索引(Index)
- SQLite Indexed By
- SQLite Alter 命令
- SQLite Truncate Table
- SQLite 视图(View)
- SQLite 事务(Transaction)
- SQLite 子查询
- SQLite Autoincrement(自动递增)
- SQLite 注入
- SQLite Explain(解释)
- SQLite Vacuum
- SQLite 日期 & 时间
- SQLite 常用函数
- SQLite 接口
- SQLite - C/C++
- SQLite - Java
- SQLite - PHP
- SQLite - Perl
- SQLite - Python
- SQL Server 教程
- 关于 Microsoft SQL Server - SQL Server 教程
- SQL Server 2014 版 - SQL Server 教程
- SQL Server 安装 - SQL Server 教程
- Windows2012 R2 上安装.NET3.5 框架 - SQL Server 教程
- SQL Server 管理套件(SSMS) - SQL Server 教程
- SQL Server 创建数据库 - SQL Server 教程
- SQL Server 创建表 - SQL Server 教程
- SQL Server 添加数据 - SQL Server 教程
- SQL Server SQL 脚本 - SQL Server 教程
- SQL Server 查询设计器 - SQL Server 教程
- SQL Server 视图 - SQL Server 教程
- SQL Server 存储过程 - SQL Server 教程
- SQL Server 服务器角色 - SQL Server 教程
- SQL Server 数据库模式 - SQL Server 教程
- SQL Server 链接服务器 - SQL Server 教程
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
PL/SQL 数组 - PL/SQL 教程
PL/SQL 程序设计语言提供叫一种叫做 VARRAY 的数据结构,其可存储相同类型元素的一个固定大小的连续集合。VARRAY 用于存储数据的有序集合,但它往往是更加有用认为数组作为相同类型的变量的集合。
所有可变数组由连续的存储位置。最低的地址对应于第一元素和最高地址的最后一个元素。
数组是所有集合类型数据的一部分,并且它代表了可变大小的的阵列。我们将研究其他集合类型在后面的“PL/SQL 集合”章节。
在一个 VARRAY 每个元素都有与其相关联的索引。它还具有可以动态改变一个最大大小。
创建 VARRAY 类型
一个 VARRAY 类型是用 CREATE TYPE 语句创建。必须指定最大长度,并存储在 VARRAY 元素的类型。
对于在架构层面创造一个 VRRAY 类型的基本语法:
CREATE OR REPLACE TYPE varray_type_name IS VARRAY(n) of <element_type>
这里,
- varray_type_name 就是一个有效的属性名
- n 是 VARRAY 元素(最大值)的数目
- element_type 就是所述数组的元素的数据类型。
VARRAY 的最大长度可以使用 ALTER TYPE 语句来改变。
例如,
CREATE Or REPLACE TYPE namearray AS VARRAY(3) OF VARCHAR2(10);
/
Type created.
PL/SQL 块创建 VRRAY 类型的基本语法:
TYPE varray_type_name IS VARRAY(n) of <element_type>
示例,
TYPE namearray IS VARRAY(5) OF VARCHAR2(10);
Type grades IS VARRAY(5) OF INTEGER;
示例 1
下面的程序说明了使用可变数组:
DECLARE
type namesarray IS VARRAY(5) OF VARCHAR2(10);
type grades IS VARRAY(5) OF INTEGER;
names namesarray;
marks grades;
total integer;
BEGIN
names := namesarray('Kavita', 'Pritam', 'Ayan', 'Rishav', 'Aziz');
marks:= grades(98, 97, 78, 87, 92);
total := names.count;
dbms_output.put_line('Total '|| total || ' Students');
FOR i in 1 .. total LOOP
dbms_output.put_line('Student: ' || names(i) || '
Marks: ' || marks(i));
END LOOP;
END;
/
当上述代码在 SQL 提示符执行时,它产生了以下结果:
Student: Kavita Marks: 98
Student: Pritam Marks: 97
Student: Ayan Marks: 78
Student: Rishav Marks: 87
Student: Aziz Marks: 92
PL/SQL procedure successfully completed.
请注意:
- 在 Oracle 环境中,可变数组的起始索引始终为 1
- 可以初始化使用 VARRAY 类型,它具有相同的名称变长数组的构造方法 VARRAY 元素
- 可变数组是一维阵列
- 一个 VARRAY 当它被声明自动为 NULL 值,必须初始化之前,它的元素可以被引用
示例 2
VARRAY 的元素也可以是任何%TYPE 任何数据库表或%ROWTYPE 数据库表的字段。下面的例子说明了这个概念:
我们将使用存储在数据库中的 CUSTOMERS 表:
Select * from customers;
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
+----+----------+-----+-----------+----------+
以下是使用游标示例:
DECLARE
CURSOR c_customers is
SELECT name FROM customers;
type c_list is varray (6) of customers.name%type;
name_list c_list := c_list();
counter integer :=0;
BEGIN
FOR n IN c_customers LOOP
counter := counter + 1;
name_list.extend;
name_list(counter) := n.name;
dbms_output.put_line('Customer('||counter ||'):'||name_list(counter));
END LOOP;
END;
/
当上述代码在 SQL 提示符执行时,它产生了以下结果:
Customer(1): Ramesh
Customer(2): Khilan
Customer(3): kaushik
Customer(4): Chaitali
Customer(5): Hardik
Customer(6): Komal
PL/SQL procedure successfully completed.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论