Index_by表 集合类型
DECLARE
TYPE T_RECOR IS record(fid varchar2(12),name varchar2(20));
TYPE T_TABLE IS TABLE OF T_RECOR index by VARCHAR2(2);
--BINARY_INTEGER;
V_TABLE T_TABLE;
V_RECOR T_RECOR;
slen varchar2(2) := '1a';
--slen number;
BEGIN
--SELECT fid,name INTO V_RECOR FROM tableb where fid='1';
--V_TABLE(1) := V_RECOR;
V_RECOR.fid := '02';
V_RECOR.name := 'qss';
V_TABLE(slen) := V_RECOR;
--DBMS_OUTPUT.PUT_LINE(V_TABLE.COUNT);
--while slen <= V_TABLE.count
--loop
--DBMS_OUTPUT.PUT_LINE(V_TABLE(slen).fid);
--DBMS_OUTPUT.PUT_LINE(V_TABLE(slen).name);
DBMS_OUTPUT.PUT_LINE(V_TABLE(slen).fid);
DBMS_OUTPUT.PUT_LINE(V_TABLE(slen).name);
--slen :=slen+1;
--end loop;
END;
DECLARE
TYPE T_RECOR IS record(fid varchar2(12),name varchar2(20));
TYPE T_TABLE IS TABLE OF T_RECOR index by binary_integer;
--BINARY_INTEGER;
V_TABLE T_TABLE;
V_RECOR T_RECOR;
slen number:=1;
--slen number;
BEGIN
SELECT fid,name INTO V_RECOR FROM tableb where fid='1';
V_TABLE(1) := V_RECOR;
V_RECOR.fid := '02';
V_RECOR.name := 'qss';
V_TABLE(slen) := V_RECOR;
DBMS_OUTPUT.PUT_LINE(V_TABLE.COUNT);
while slen <= V_TABLE.count
loop
DBMS_OUTPUT.PUT_LINE(V_TABLE(slen).fid);
DBMS_OUTPUT.PUT_LINE(V_TABLE(slen).name);
DBMS_OUTPUT.PUT_LINE(V_TABLE(slen).fid);
DBMS_OUTPUT.PUT_LINE(V_TABLE(slen).name);
slen :=slen+1;
end loop;
END;
declare
type table1 is record(fid varchar2(10),username varchar2(20));
type table2 is table of table1 index by varchar2(2);
v_table1 table1;
v_table2 table2;
begin
select b.fid,b.name into v_table1 from tableb b where b.fid='1';
v_table2('ab') :=v_table1;
v_table1.fid:='123';
v_table1.username:='linhua';
v_table2('ac'):=v_table1;
DBMS_OUTPUT.PUT_LINE(v_table2('ab').fid);
DBMS_OUTPUT.PUT_LINE(v_table2('ab').username);
DBMS_OUTPUT.PUT_LINE(v_table2('ac').fid);
DBMS_OUTPUT.PUT_LINE(v_table2('ac').username);
end;
declare
type table1 is record(fid varchar2(10),username varchar2(20));
type table2 is table of table1 index by binary_integer;
v_table1 table1;
v_table2 table2;
slen number :=1;
begin
select b.fid,b.name into v_table1 from tableb b where b.fid='1';
v_table2(1) :=v_table1;
v_table1.fid:='123';
v_table1.username:='linhua';
v_table2(2):=v_table1;
while slen <= v_table2.count
loop
DBMS_OUTPUT.PUT_LINE(v_table2(slen).fid);
DBMS_OUTPUT.PUT_LINE(v_table2(slen).username);
slen :=slen+1;
end loop;
end;
分享到:
相关推荐
在Oracle PL/SQL中,`INDEX BY`表是一种特殊类型的关联数组或哈希表,允许通过整数索引(通常为`BINARY_INTEGER`类型)来访问元素。这种类型的表非常适用于存储具有唯一键的数据集,并且在某些情况下比传统数组更...
本文将详细介绍PL/SQL中的三种主要集合类型:Index_by表、嵌套表和VARRAY,并讨论如何在实际应用中使用这些集合。 #### 二、集合类型 ##### 1. Index_by表(联合数组) **定义** Index_by表是一种特殊的PL/SQL...
type 集合类型名 is table of 元素类型 index by 下标类型; 变量名集合类型名 begin 集合类型名(唯一下标):=元素; end; --嵌套表集合 declare type 嵌套类型名 is table of 元素类型名; --无参初始化 ...
Oracle数据库系统提供了多种数据类型,其中包括了三种主要的集合数据类型:VARRAY(变量数组)、NESTED TABLE(嵌套表)和 Associative Array(关联数组,也称为INDEX BY TABLE)。这三种集合数据类型在存储和操作一...
- 索引表的定义:索引表是一种无约束的集合类型,其大小仅受BINARY_INTEGER类型的限制。在PL/SQL中,作为输出参数的索引表需在包(package)中定义。例如: ```sql create or replace package out_param is type ...
索引数组,也称为PL/SQL数组,是最基本的集合类型。它们类似于C语言中的数组,拥有固定的大小,并且元素按照数字索引进行访问。索引数组的元素类型可以是任何PL/SQL类型,包括复合类型。当创建一个索引数组时,必须...
### Oracle集合类型输出参数的PL/SQL存储过程及其Java调用 #### 1. 引言 存储过程因其高效执行、事务处理能力以及安全性,在数据库应用程序中被广泛应用。特别是使用Oracle数据库时,PL/SQL(一种专为Oracle设计的...
在PL/SQL中,Oracle提供了三种集合类型,它们分别是联合数组(Associative Array)、内嵌表(Nested Table)和索引表(Index-By Table),这些类型为处理和操作一维数据提供了强大的工具。让我们逐一深入理解这三种...
接下来将详细介绍三种不同的集合类型:关联数组、嵌套表和VARRAY,并给出每种类型的示例。 ##### 12.2.1 关联数组 (Associative Arrays) 关联数组是一种可变大小的集合,其索引可以是任意类型,通常是数字或字符串...
本篇将详细介绍PL/SQL中的三种主要集合类型:关联数组、嵌套表和VARRY数组。 关联数组(Index By Table)是一种键值对的集合,它允许通过一个唯一的键来访问存储的值。键可以是整数或字符串类型,与Java中的HashMap...
除了表,还可以创建视图(虚拟表)、存储过程(预编译的SQL语句集合)、触发器(自动执行的程序代码)等,以增强数据库功能和数据完整性。 9. 索引: 索引能加快数据的检索速度,通过CREATE INDEX语句创建,有B树...
`CREATE TABLE`语句用于创建表,其中包括定义列的名称、数据类型、约束等。例如`CREATE TABLE tbl_name (col_name DataType);`其中`tbl_name`是表名,`col_name`是列名,`DataType`是数据类型。 4. **查看表结构和...
上面的语法格式中,sequence就是一个集合对象,也可以是一个表达式,但该表达式将返回一个集合对象,而item是一个任意的名字,就是被迭代输出的集合元素.此外,迭代集合对象时,还包含两个特殊的循环变量: item_index:...
ALTERTABLE语句用于对现有表进行修改,比如增加新列、删除列、修改列的数据类型或名称等。 举例:给store_info表增加一个新的列manager_name: ``` ALTER TABLE store_info ADD manager_name VARCHAR(50); ``` 7....
### PL/SQL 集合相关知识点详解 ...需要注意的是,在实际应用中,应根据具体的需求选择合适的集合类型,以便更好地组织和管理数据。此外,合理利用集合的特性和函数可以极大地简化编程工作并提高代码的质量。
在本文中,创建了一个名为 MSG_ARRAY 的类型,这个类型是一个可变数组,使用 TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER 定义。 接下来,创建一个存储过程,名为 DELMSG,这个存储过程接受一个 MSG_ARRAY 类型...
Swift中最常见的集合类型是数组(Array)和字典(Dictionary)。 1. 数组:有序集合,可以通过索引访问元素。Swift的数组支持动态大小调整,并提供了多种操作,如添加、删除元素,以及排序。 2. 字典:无序键值对的...
在Java中调用Oracle函数并处理返回的Oracle特定数据类型,如集合或索引表,通常涉及到Oracle的PL/SQL包和Java的JDBC驱动。以下是对这个主题的详细说明: 1. **Oracle索引表类型**: Oracle索引表是一种PL/SQL数据...
根据实际需求选择合适的集合类型,可以有效地处理复杂的数据关系。在实际应用中,应结合业务场景、数据特性以及性能需求来选择Set、List、Array或Map进行映射,确保数据的一致性和高效性。同时,理解并熟练掌握这些...