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 ...
随机推荐
- pod 更新慢解决方案
pod install --verbose --no-repo-update pod update --verbose --no-repo-update
- 富文本编辑器 kindeditor
下载 在页面中添加JS代码,用于初始化kindeditor <script type="text/javascript"> var editor; KindEditor ...
- php解决高并发问题
我们通常衡量一个Web系统的吞吐率的指标是QPS(Query Per Second,每秒处理请求数),解决每秒数万次的高并发场景,这个指标非常关键.举个例子,我们假设处理一个业务请求平均响应时间为10 ...
- android手机旋转方向识别
private OrientationEventListener mOrientationListener; private String TAG = "MainActivity" ...
- 小A与小B-(双向bfs)
链接:https://ac.nowcoder.com/acm/contest/549/G来源:牛客网 题目描述 小A与小B这次两个人都被困在了迷宫里面的两个不同的位置,而他们希望能够迅速找到对方,然后 ...
- Linux下使用ps命令查看某个进程文件的启动位置
ps -ef|grep shutdown ls -al /proc/4170
- IDEA添加项目依赖(将Tomcat中的servlet-api.jar添加到项目中去)
File -> project structure -> Modules -> 右侧Dependencies -> 然后点加号把配置好的Tomcat的依赖包加进去
- pyautogui 文档(二):鼠标控制
0,0 X increases --> +---------------------------+ | | Y increases | | | | 1920 x 1080 screen | | ...
- ssh连接远程主机执行脚本的环境变量问题
近日在使用ssh命令ssh user@remote ~/myscript.sh登陆到远程机器remote上执行脚本时,遇到一个奇怪的问题: ~/myscript.sh: line n: app: co ...
- Polar Code(1)关于Polar Code
Polar Codes于2008年由土耳其毕尔肯大学Erdal Arikan教授首次提出,Polar Codes提出后各通信巨头都进行了研究.2016年11月18日(美国时间2016年11月17日), ...