• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > Oracle定义联合数组及使用技巧

Oracle定义联合数组及使用技巧

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了oracle数组定义,oracle 如何定义数组,oracle中定义数组,oracle 二维数组,oracle 数组等相关知识,希望本文的分享对您有所帮助
联合数组以前被称为PL/SQL表。在表中不能使用联合数组,只能将它们用作程序设计的结构体。只能在PL/SQL中访问联合数组。

注意到联合数组带来的一些关键问题是非常重要的。这些问题使我们介绍它们的用法时,需要采取一些特别的方法。这些问题包括:

联合数组不需要初始化,也没有构造函数语法。在对它们进行赋值以前,也不需要专门为其分配存储空间,也就不需要使用集合API的EXTEND方法。

在ORACLE 10G中,以及在ORACLE 10G以前的版本中,都可以使用数字索引联合数组。另外,在ORACLE 10G中,还可以使用具有唯一性的变长字符串作为联合数组的索引。

可以使用任意的整数作为联合数组的索引,这就说明联合数组的索引可以是任意正数、负数或0。
可以显式地将等价的%ROWTYPE、记录类型和对象类型的返回值,转换成联合数组的结构体。

联合数组是使用FORALL语句或BULK COLLECT子句的关键,而后者则允许数据库到程序设计单元的批转换。
在使用了全球化设置,例如NLS_COMP或NLS_SORT初始化参数的数据库中,将字符串用作联合数组索引的时候,需要我们进行特殊的处理。

1、定义联合数组和用作PL/SQL的程序结构体
在PL/SQL语言中定义联合数组的语法有两种,一种是:
CREATE OR REPLACE TYPE type_name
AS TABLE OF element_type [NOT NULL]
INDEX BY [PLS_INTEGER | BINARY_INTEGER | VARCHAR2(size) ];
可以将正数、负数或者0值用作联合数组的索引。ORACLE 10G中的PLS_INTEGER何BINARY_INTEGER类型都是不受限制的数据类型,这两个数据类型都映射到C/C++、C#和JAVA的调用规范中。
变长字符串的最大长度为4000个字符。
另一种定义联合数组的语法是:
CREATE OR REPLACE TYPE type_name
AS TABLE OF element_type [NOT NULL]
INDEX BY key_type;
其中的key_type允许我们使用VARCHAR2、STRING或LONG类型。使用VARCHAR2和STRING时,都需要定义大小。使用LONG类型时,则不需要定义大小,因为它是通过定义VARCHAR(32760)进行定义的。
联合数组不需要进行初始化,也没有构造函数语法。这是与其他两种集合类型(VARRAYS和嵌套表)有着本质区别的地方。
如果你像下面这样构造一个联合数组,那么会引发PLS-00222异常。
-- Define an
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Oracle定义联合数组及使用技巧

相关文章

  • 2017-05-11Oracle导dmp出现文件ORA-12154: TNS: 无法解析指定的连接标识符问题的解决方案
  • 2017-05-11Oracle监听器服务不能启动的解决方法
  • 2017-05-11ORACLE 数据库RMAN备份恢复
  • 2017-05-11关于oracle中clob字段查询慢的问题及解决方法
  • 2017-05-11ORACLE 报警日志如何查看?第1/2页
  • 2017-05-11关于SQL执行计划错误导致临时表空间不足的问题
  • 2017-05-11ORACLE 查询被锁住的对象,并结束其会话的方法
  • 2017-05-11Informatica bulk与normal模式的深入详解
  • 2017-05-11oracle comment命令用法示例分享
  • 2017-05-11对学Oracle数据库初学者的开场篇

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • oralce和db2兼容开发注意事项
    • ProC 连接Oracle代码
    • oracle 11g 设置用户密码大小写敏感测试
    • Oracle 插入超4000字节的CLOB字段的处理方法
    • 重新编译PLSQL中的无效对象或者指定的对象 的方法
    • ORACLE学习笔记-新建用户及建表篇
    • oracle创建表空间、授权、创建用户、导入dmp文件
    • oracle 11g RAC 常用命令整理分享
    • ORACLE应用经验(1)
    • 连接Oracle数据库时报ORA-12541:TNS:无监听程序的图文解决教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有