Oracle中特殊的变量类型
- 声明一个TYPE: TYPE ref_cursor_name IS REF CURSOR [RETURN_TYPE];return_type子句是可省的,可以指定或不指定REF_CURSOR返回的数据类型。如果不指定,则游标是弱类型的。如果指定,则游标是强类型的。PL/SQL提供了一个预定义的称为SYS_REFCURSOR的弱REF CURSOR。
- 然后创建该类型的一个实例: cursor_variable ref_cursor_name ; sys_cursor SYS_REFCURSOR
- 接收select语句的结果:select employee_id, employee_name from employee into rec;
- 向数据库表中insert:insert into employee values rec;
- 更新表记录update: update empee set row rec where employee_id = rec .employee_id;
- 可以在delete语句中使用: DELETE FROM HR.JOB_HISTORY WHERE DEPART_ID =1 RETURN TYPE EMPLOEE_ID,EMPLOEE_NAME into rec;
| 操作 | 含义 | 语法 |
| EXISTS | 检查集合中是否存在某个元素 | collection.EXISTS(index) |
| COUNT | 返回集合中元素的个数 | collection.COUNT |
| LIMIT | 返回VARRAY中的最大条目数 | collection.LIMIT |
| FIRST | 返回集合中的第一个元素 | collection.FIRST |
| LAST | 返回集合中最后一个元素 | collection.LAST |
| NEXT | 返回集合中下一个元素 | collection.NEXT |
| PRIOR | 返回集合中的上一个元素,如果不存在,则返回NULL | collection.PRIOR |
| EXTEND | 扩展集合中元素的个数。不能用于关联数组或其他未被 初始化的集合 |
collection.EXTEND(给集合增加单个元素) collection.EXTEND(n) :给集合增加n个元素 collection.EXTEND(n,I):通过复制下标I的值,给集合增加n个元素 |
| TRIM | 从集合结尾处删除元素 | collection.TRIM;从结尾处删除单个元素 collection.TRIM(n):从集合结尾处删除n个元素 |
| DELETE | 从集合中删除元素 | collection.DELETE:从集合中删除所有元素 collection.DELETE(n):从集合中删除下标为n的元素 collection.DELETE(m,n):从集合中删除下标值位于m,n之间的元素 |
- EXTEND、TRIM和DELETE以外其他操作都返回值
- 根据环境所定义的语言,包含VARCHAR2下标的关联数组按字母顺序排列
- 如果集合为空(NULL),则FIRST和LAST返回NULL,它不包含于任何元素
- 如果集合中不存在下一个或上一个元素,则NEXT和PRIOR返回NULL
- EXTEND 和 TRIM 不能用于关联数组
- LIMIT可以用于限制添加至集合的值的个数,通常的语法是l select... into
| 关联数组 | 嵌套表 | VARRAY | |
| 下标类型 | 数字或字符串 | 数字 | 数字 |
| 声明为固定大小 | 否 | 否 | 是 |
| 允许稀疏下标 | 是 | 是 | 否 |
| 在数据库中存储 | 否 | 是 | 是 |
| 访问存储在集合中的各个元素 | N/A | 是 | 是 |
Oracle中特殊的变量类型的更多相关文章
- Oracle中Blob和Clob类型的区别与操作
Oracle中Blob和Clob类型 1.Oracle中Blob和Clob类型的区别 BLOB和CLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的.其实两个是可以互换的 ...
- CG中的数据变量类型
CG 中的数据变量类型有三: float:高精度浮点值,通常是32位. half:中精度浮点值.通常是16位,范围是-60000至+60000,它适合存储UV坐标,颜色值等. fixed:低精度浮点值 ...
- 问题:oracle CLOB类型;结果:oracle中Blob和Clob类型的区别
BLOB和CLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的.其实两个是可以互换的的,或者可以直接用LOB字段代替这两个.但是为了更好的管理ORACLE数据库,通常像图 ...
- Oracle的pl/sql变量类型
pl/sql定义 sql是结构化查询语言.sql是不是一个编程语言?编程语言一般都能够声明变量,写条件判断,循环.sql不具备这些特征,所有sql不是一门编程语言.我们在实际的开发中,有这种需要,把s ...
- Sqoop 将hdfs上的文件导入到oracle中,关于date类型的问题
近期的项目中,需要将hadoop运行完成的结果(存在于hdfs上)导入到oracle中,但是在用sqoop导入hdfs中的日期字段'2016-03-01'时,sqoop报错,说date类型必须为'yy ...
- oracle中数据类型对应java类型
地址: http://otndnld.Oracle.co.jp/document/products/oracle10g/102/doc_cd/Java.102/B19275-03/datacc.htm ...
- Python中的高级变量类型
高级变量类型 目标 列表 元组 字典 字符串 公共方法 变量高级 知识点回顾 Python 中数据类型可以分为 数字型 和 非数字型 数字型 整型 (int) 浮点型(float) 布尔型(bool) ...
- SQL SERVER中LIKE使用变量类型不同输出结果不一致解惑
一同事在写脚本时,遇到一个关于LIKE里面使用不同的变量类型导致查询结果不一致的问题,因为这个问题被不同的人问过好几次,索性总结一下,免得每次都要解释一遍,直接丢一篇博客岂不是更方便!其实看似有点让人 ...
- SQL SERVER中LIKE使用变量类型输出结果不同
前言:Sql Server中LIKE里面使用不同的变量类型导致查询结果不一致的问题,其实看似有点让人不解的现象背后实质跟数据类型的实现有关. 一.我们先来创建示例演示具体操作 CREATE TABLE ...
随机推荐
- Netty从入门到精通到放弃
有时间想记录一下关于Netty的知识. 第一课:传统IO的特点. package com.example.aimei.controller; import java.io.InputStream; i ...
- anujs1.4.0发布
经过三个月的埋头苦干,终于完成Fiber版的anujs. 主要特性有: 测试全部改成jest, 迁移官方测试用例.有许多迷你React吹得怎么天花乱坠,但是生命周期钩子的执行顺序无法与官方保持一致,那 ...
- Druid中配置双数据库
配置如下 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://w ...
- jquery中attr属性操作
- Mysql JSON字段提取某一个属性值的函数
mysql从5.7开始才支持JSON_EXTRACT等 JSON相关的函数, 项目里用到的mysql是5.6的,需要提取JSON字段里某一个属性值进行统计, 自己写了一个笨的提取方法: CREATE ...
- Linux源码安装JDK1.8
Linux源码安装Java 1.到官网下载 jdk-8u131-linux-x64.tar.gz 官网地址:http://www.oracle.com/technetwork/java/javase/ ...
- pandas,对dataFrame中某一个列的数据进行处理
背景:dataFrame的数据,想对某一个列做逻辑处理,生成新的列,或覆盖原有列的值 下面例子中的df均为pandas.DataFrame()的数据 1.增加新列,或更改某列的值 df[&qu ...
- Linux-04
文件处理命令 文件处理命令:rmdir 命令名称:rmdir 命令英文原意:remove empty directories 命令所在路径:/bin/rmdir 执行权限:所有用户 语法:rmdir ...
- Java第一周作业
Java第一周作业 本周作业: 参考<<教材学习指导(http://www.cnblogs.com/rocedu/p/7911138.html)) 学习第一章视频 参考<<使用 ...
- Ubuntu 通过apt安装VSCode
1. sudo vim /etc/apt/sources.list.d/vscode.list 并向里面添加:deb [arch=amd64] http://packages.microsoft.co ...