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 ...
随机推荐
- delphi:Exception EInvalidPointer in module Project1.exe
在用delphi XE5编程时遇到如下问题: Exception EInvalidPointer in module Project1.exe at 00007595. Invalid pointer ...
- 《DOM Scripting》学习笔记-——第八章 充实文档的内容
本章内容 一.一个为文档创建“缩略词语表”的函数 二.一个为文档创建“文献来源链接”的函数 三.一个为文档创建“快速访问键清单”的函数 利用DOM动态的收集和创建一些有用的辅助信息,并把它们呈现在网页 ...
- centos7下部署mariadb+galera数据库高可用集群
[root@node1 ~]# cat /etc/yum.repos.d/mariadb.repo # MariaDB 10.1 CentOS repository list - created 20 ...
- windows php exec()不生效问题
开始 $cmd = 'java -jar C:/xampp/htdocs/dev_env/replace_word_content.jar'; 报错java不是内部命令 换成 $cmd = 'C:\P ...
- QUARTZ系列之零:概述
前言: 很早就会使用quartz进行任务调度了,然一直只是会用,甚至只是会用如下的套路: { 1.获取个schedule 2.实例一个job 3.实例一个trigger 4. schedule.sch ...
- PhoenixFD插件流体模拟——UI布局【Input】详解
Liquid Input 流体输入 本文主要讲解Input折叠栏中的内容.原文地址:https://docs.chaosgroup.com/display/PHX3MAX/Liquid+Input 主 ...
- step_by_step_记录deepin下curl安装过程
记录 deepin 下 curl 安装过程 wget https://curl.haxx.se/download/curl-7.55.1.tar.gz .tar.gz cd curl-/ ./conf ...
- Django Rest Framework 视图和路由
Django Rest Framework 视图和路由 DRF的视图 APIView 我们django中写CBV的时候继承的是View,rest_framework继承的是APIView,那么他们 ...
- TT-付款方式
付款方式 一般T/T是可以的,上述客户我们采用的付款方式就是定金加TT,如果是信用证方式,那么需要资信良好的开证行: 中国工商银行 汇丰银行 渣打银行 花旗银行 MUSLIM COMMERCIAL B ...
- LinkedStack
public class LinkedStack<T> { private static class Node<U>{ U item; Node<U>next; N ...