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 ...
随机推荐
- 富文本编辑器 kindeditor
下载 在页面中添加JS代码,用于初始化kindeditor <script type="text/javascript"> var editor; KindEditor ...
- 剑指offer——从上往下打印二叉树
题目描述:从上到下打印二叉树的节点,同一层的从左到右打印 思路:采用队列来存储单层的节点,然后通过删除队列的头结点操作,依次遍历每一层. 代码为: import java.util.ArrayList ...
- Ruby on Rails 开发笔记
安装 Ruby on Rails Install Rails: A step-by-step guide 创建应用 # 创建新的应用程序 $ rails new blog $ cd blog # 启动 ...
- 如何激活已经运行过的Activity, 而不是重新启动新的Activity
Intent i=new Intent(this,Activity1.class); i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); st ...
- vue-lazyload 图片依赖加载
一. vue lazyload插件: 插件地址:https://github.com/hilongjw/vue-lazyload (点击里面的demo进入可以查看使用代码 https://git ...
- ThingJS平台制作第一人称视角下的巡更效果
今天想要做一个类似巡更的过程,就像是在学校保安巡更,小区保安巡更一样.巡更需要用到相应的场景,比如说:园区.学校.超市以及工厂等等,然后需要规划好路线也就是巡更的路线,并且视角要跟随路线来变换,从而达 ...
- Loadrunner进行HTTPS协议性能测试
1.最简单办法就是在脚本前面加上:web_set_sockets_option("SSL_VERSION","TLS"),一般能解决HTTPS协议的请求问题,无 ...
- VS2017企业版密钥
Visual Studio 2017(VS2017) 企业版 Enterprise 注册码:NJVYC-BMHX2-G77MM-4XJMR-6Q8QFVisual Studio 2017(VS2017 ...
- java 查询路径中所有文件夹和文件的名称,支持文件名模糊查询
java 查询路径中所有文件夹和文件的名称,支持文件名模糊查询 有时候我们遇到需要查询服务器或者本机某个路径下有哪些文件?或者根据文件名称模糊搜索文件,那么就可以使用本方法:可以获取某个路径下所有文件 ...
- git 安装及常见问题处理
卸载掉自带的: yum remove git 安装: yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-de ...