PLSQL表
PL/SQL表
一,什么是PL/SQL表?
首先PL/SQL表和记录(Record)一样,都是复合数据类型。可以看做是一种用户自定义数据类型。
PL/SQL表由多列单行的标量构成的临时索引表对象。组成类似于一维数组。
区别和联系记录(Record)的单行多列和物理存储数据的表。
Record + PL/SQL表可以进行数据的多行多列存储。
生命周期在程序块内。
二,PL/SQL表的组成结构
PL/SQL表只有两列,其中第一列为索引列为Integer类型索引列,9i后可以支持字符索引。第二列为用户自定义列,声明用户可用列类型.
通过索引列中的索引值来操作PL/SQL表中对应的用户自定义列。类似于键值对。
确保索引值的唯一性。如果索引值重复不会报错,会覆盖前面的值。
三,如何创建和使用PL/SQL表?
①声明PL/SQL表类型对象
语法:
TYPE PL/SQL表名 IS TABLE OF 可用列类型 [NOT NULL]
INDEX BY BINARY_INTEGER;
可用列类型可以为Oracle的数据类类型以及用户自定义类型;
属性方法:
count --返回pl/sql表的总行数;
delect --删除pl/sql表的所有内容;
delect(行数) --删除pl/sql表的指定的行;
delct(开始行,结束行) --删除pl/sql表的多行;
first --返回表的第一个INDEX;
next(行数) --这个行数的下一条的INDEX;
last --返回表的最后一个INDEX;
②声明PL/SQL表类型变量:
语法:
PL/SQL表类型变量名 PL/SQL表类型;
③数据填充和访问
语法:
PL/SQL表类型变量名(索引列值) := 填充声明类型值;
PL/SQL表类型变量名.属性方法名;
例子:
---PLSQL 表,先定义表类型,再定义表变量 l 类似于JAVA中的数组
declare
type ename_table_type is table of emp.ename%type index by binary_integer;
ename_table ename_table_type;
begin
select ename into ename_table(-1) from emp where empno=7788;
dbms_output.put_line('雇员名:'||ename_table(-1));
end; declare
type mytabtype is table of varchar2(10) index by binary_integer;
mytab mytabtype;
vn number(4);
begin
mytab(1):='A';
mytab(2):='B';
mytab(3):='C';
vn:=mytab.first;
dbms_output.put_line('first index: '||vn);
vn :=mytab.last;
dbms_output.put_line('last index: '||vn);
DBMS_OUTPUT.PUT_LINE(' First值:'||MyTab(MyTab.First));
end;
例子:使用循环填充和访问PL/SQL表例子:使用循环填充和访问PL/SQL表例子:使用循环填充和访问PL/SQL表例子:使用循环填充和访问PL/SQL表 例子:使用循环填充和访问PL/SQL表
--使用循环填充和访问PLSQL表
declare
type mytabtype is table of varchar2(10) index by binary_integer;
mytab mytabtype;
vn number;
begin
for varE in (select empno,ename from emp a order by ename)
loop
mytab(varE.empno):=varE.ename;
end loop;
vn:=mytab.first;
for i in 1.. mytab.count
loop
dbms_output.put_line(vn||'=='||mytab(vn));
vn:=mytab.next(vn);
end loop;
end;
--向PLSQL表中插入数据 .
declare
type mytabtype is table of varchar2(10) index by binary_integer;
mytab mytabtype;
begin
mytab(1):='A';
mytab(2):='B';
mytab(3):='C';
dbms_output.put_line('index 3:'|| mytab(3));
mytab(3):='D';
dbms_output.put_line('index 3:'|| mytab(3));
end;
PLSQL表的更多相关文章
- plsql 表数据中文显示乱码(配置环境变量)
plsql 表数据中文显示乱码(配置环境变量) CreateTime--2018年4月23日19:32:37 Author:Marydon 1.情景再现 2.解决方案 配置环境变量 变量名:NLS ...
- 关于plsql表如何创建自增长列
1首先在sequence中创建新序列 在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方. 这是语句创建 create sequence ide ...
- PLSQL学习教程(全)
基于ORACLE9i+PL/SQLDeveloper7.1.4) 课程 一 PL/SQL 基本查询与排序 本课重点: 1.写SELECT语句进行数据库查询 2.进行数学运算 3.处理空值 4.使用别名 ...
- Oracle总结之plsql编程(基础八)
原创作品,转自请注明出处:https://www.cnblogs.com/sunshine5683/p/10328524.html 一.函数 1.函数是可以返回一个特定的数据,函数的创建中必须包含re ...
- plsql oracle 使用教程
课程 一 PL/SQL 基本查询与排序 本课重点: 1.写SELECT语句进行数据库查询 2.进行数学运算 3.处理空值 4.使用别名ALIASES 5.连接列 6.在SQL PLUS中编辑缓冲,修改 ...
- plsql实例精讲部分笔记
转换sql: create or replace view v_sale(year,month1,month2,month3,month4,month5,month6,month7,month8,mo ...
- PLSQL集合类型
PLSQL集合类型 --联合数组(索引表) /* 用于存储某个数据类型的数据集合类型 .通过索引获得联合数组中得值 如下例子: */ DECLARE CURSOR cur_chars IS SEL ...
- Oracle错误览表
Oracle 错误总结及问题解决 ORA 本文转自:https://www.cnblogs.com/zhangwei595806165/p/4972016.html 作者@承影剑 ORA-0 ...
- Oracle Ora 错误解决方案合集
注:本文来源于 < Oracle学习笔记 --- Oracle ORA错误解决方案 > ORA-00001: 违反唯一约束条件 (.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发 ...
随机推荐
- Struts 1 之文件上传
Struts 1 对Apache的commons-fileupload进行了再封装,把上传文件封装成FormFile对象 定义UploadForm: private FormFilefile; //上 ...
- hbase高性能读取数据
有时需要从hbase中一次读取大量的数据,同时对实时性有较高的要求.可以从两方面进行考虑:1.hbase提供的get方法提供了批量获取数据方法,通过组装一个list<Get> gets即可 ...
- Spark内存管理-UnifiedMemoryManager和StaticMemoryManager
在Spark-1.6.0中,引入了一个新的参数spark.memory.userLegacyMode(默认值为false),表示不使用Spark-1.6.0之前的内存管理机制,而是使用1.6.0中引入 ...
- Hibernate之多对多表,操作实例
多表操作之多对多关系简介 思路就是: 在数据库底层通过添加中间表来指定关联关系. 在双方的实体中添加一个保存对方的集合 在双方的配置文件中使用set标签和many-to-many标签来进行关联关系的配 ...
- EasyUI表单验证,自定义插件验证,自定义js插件验证,远程验证,常见手机号,中英文,qq等验证规则验证
{ field : 'startPort', title : "起始端口", editor: "text", width : 50, editor: { ...
- 【一天一道LeetCode】#258. Add Digits
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...
- 【java虚拟机系列】java中类与对象的加载顺序
首先了解一下Java虚拟机初始化的原理. JVM通过加装.连接和初始化一个Java类型,使该类型可以被正在运行的Java程序所使用.类型的生命周期如下图所示: 装载和连接必须在初始化之前就要完成. 类 ...
- win7 VMware CentOS桥接(bridge)模式网络配置
主要内容参考自: centos下vmware 桥接设置静态ip例子 关于虚拟机网络配置的文章: Win7+VMware Workstation环境下的CentOS-Linux网络连接设置(推荐阅读) ...
- java实现:将一个数各个位数相加
前面已经实现过这个程序,现在我们就不多说了,直接更改C的源码,实现这个JAVA程序. import java.util.Scanner; public class HelloWorld { publi ...
- numpy教程:矩阵matrix及其运算
http://blog.csdn.net/pipisorry/article/details/48791403 numpy矩阵简介 NumPy函数库中存在两种不同的数据类型(矩阵matrix和数组ar ...