如语句:type numbers is table of number index by binary_integer;其作用是,加了”index by binary_integer ”后,numbers类型的下标就是自增长,numbers类型在插入元素时,不需要初始化,不需要每次extend增加一个空间。
而如果没有这句话“index by binary_integer”,那就得要显示对初始化,且每插入一个元素到numbers类型的table中时,都需要先extend.
示例:
没加“index by binary_integer”时:
declare
type numbers is table of number;
n numbers := numbers();
begin
n.extend;
n(1) := 2;
n.extend;
n(2) := 3;
for i in1 .. n.count loop
dbms_output.put_line(n(i));
end loop;
end;
输出:2,3
而如果加了“index by binary_integer”,代码如下写就可以达到上面的效果
declare
type numbers is table of number index by binary_integer;
n numbers;
begin
n(1) := 2;
n(2) := 3;
for i in1 .. n.count loop
dbms_output.put_line(n(i));
end loop;
end;
分享到:
相关推荐
在Oracle PL/SQL中,`INDEX BY`表是一种特殊类型的关联数组或哈希表,允许通过整数索引(通常为`BINARY_INTEGER`类型)来访问元素。这种类型的表非常适用于存储具有唯一键的数据集,并且在某些情况下比传统数组更...
- **定义类型**: `type v_table is table of varchar2(30) index by binary_integer;` 定义了一个名为 `v_table` 的类型,它是一个通过BINARY_INTEGER索引的VARCHAR2(30)类型的表。 - **初始化数组**: `my_table v_...
type str_array is table of varchar2(10) index by binary_integer; my_array str_array := str_array('Hello', 'World'); BEGIN --... END; ``` 3. **访问数组元素**: - 使用数组名后跟方括号`[]`来访问...
TYPE TestArray IS TABLE OF Info INDEX BY BINARY_INTEGER; END myPackage; CREATE OR REPLACE PROCEDURE test (varArray IN myPackage.TestArray) AS i NUMBER; BEGIN i := 1; FOR i IN 1 .. varArray.COUNT ...
declare type v_table is table of varchar2(30) index by binary_integer; my_table v_table; 在上面的代码中,我们首先声明了一个可变数组类型 `v_table`,它可以存储任意数量的字符串元素。然后,我们创建了一个...
TYPE t_type IS TABLE OF table_name%ROWTYPE INDEX BY PLS_INTEGER; l_rows t_type; BEGIN SELECT * BULK COLLECT INTO l_rows FROM table_name WHERE condition; END; ``` #### 表函数和管道化表函数 表函数和...
TYPE my_text_table_type IS TABLE OF VARCHAR2(200) INDEX BY BINARY_INTEGER; l_text_table my_text_table_type; l_index NUMBER; BEGIN FOR emp_rec IN (SELECT * FROM emp) LOOP l_text_table(emp_rec....
type type_array is table of varchar2(20) index by binary_integer; var_array type_array; begin var_array(1) := 'aa'; var_array(2) := 'bb'; for i in 1..var_array.count loop dbms_output.put_line...
5. **PL/SQL中的INDEX BY TABLE**:在Oracle的PL/SQL块中,可以创建索引数组,比如`type numbers is table of number index by binary_integer;`这样的声明定义了一个可以动态扩展的数组,其中的下标由二进制整数...
TYPE yang_tab IS TABLE OF yang_rec INDEX BY BINARY_INTEGER; -- 定义索引表对象的实例 test_tab yang_tab; BEGIN -- 插入操作示例 test_tab(1) := (ename => '张三', eid => 101); END; ``` **1.1.2 将条目...
Type File_List is Table of VarChar2(32767) Index by Binary_Integer; is_FTPStatus VarChar2(800) := 'disconnect'; is_FTPPort Constant Integer := 21; is_TransferMethod Constant VarChar2...
在Oracle中,数组主要分为固定数组(VARRAY)和可变数组(INDEX BY)两种类型。 **固定数组(VARRAY)**: 固定数组在声明时需要指定数组的大小,例如在示例中,我们看到一个类型ar定义为包含15个varchar2类型的...
type sqlindext is table of varchar2(20) index by binary_integer; end plsql_ret_type; ``` 2. **创建Oracle函数返回索引表**: 在PL/SQL中,你可以定义一个函数,使其返回上述索引表类型。下面的`funtry_...
type emp_array is table of emp%rowtype index by binary_integer; emp_list emp_array; BEGIN ... END; ``` 这样,你可以像操作数组一样处理多个员工记录。 5. **变量作用域** 在PL/SQL块中,变量的作用域仅...
- 可变长度的一维数组:使用`TABLE`关键字,如`type type_array is table of varchar2(20) index by binary_integer`,表示一个可变长度的数组,其中元素是长度不超过20的字符串,索引由符号整数(binary_integer)...
TYPE ADDRESS_LIST IS TABLE OF VARCHAR2(100) INDEX BY BINARY_INTEGER; MY_ADDRESS_LIST ADDRESS_LIST; TYPE ACCT_LIST IS TABLE OF VARCHAR2(100) INDEX BY BINARY_INTEGER; MY_ACCT_LIST ACCT_LIST; ``` ##### ...
本文将提供这样一个获取方法,需要的朋友可以参考下Sql代码 代码如下: — Created on 2010/06/08 by NAN declare — Local variables here TYPE t_test IS TABLE OF DATE INDEX BY BINARY_INTEGER; v_test t_test; v...
type out_index_table_typ is table of varchar2(50) index by binary_integer; end out_param; ``` - 存储过程的创建:之后在存储过程中引用这个包中的索引表类型,如: ```sql create or replace procedure ...