Oracle Arrays
来源:互联网 发布:关于网络暴力的案例 编辑:程序博客网 时间:2024/05/21 21:50
PL/SQL tables are PL/SQL’s way of providing arrays. Arrays are like tem-porary
tables in memory and thus are processed very quickly. It is impor-tant
for you to realize that they are not database tables, and DML
statements cannot be issued against them. This type of table is indexed
by a binary integer counter (it cannot be indexed by another type of
number) whose value can be referenced using the number of the index.
Remember that PL/SQL tables exist in memory only, and therefore don’t
exist in any persistent way, disappearing after the session ends.
GeneralArray SyntaxTYPE type_name IS TABLE OF element_type [NOT NULL]
INDEX BY [BINARY_INTEGER | PLS_INTEGER | VARCHAR2(size_limit)];
INDEX BY key_type; Associative Array Note: An associative array in PL/SQL is similar to its counterpart in Perl: An array indexed by a string rather than by an integer.
Create, load and accessing an associative array set serveroutput on
DECLARE
TYPE assoc_array IS TABLE OF VARCHAR2(30)
INDEX BY VARCHAR2(30);
state_array assoc_array;
BEGIN
state_array('Alaska') := 'Juneau';
state_array('California') := 'Sacramento';
state_array('Oregon') := 'Salem';
state_array('Washington') := 'Olympia';
dbms_output.put_line(state_array('Alaska'));
dbms_output.put_line(state_array('California'));
dbms_output.put_line(state_array('Oregon'));
dbms_output.put_line(state_array('Alaska'));
END;
/ Binary Integer Array
Create, load and accessing an array indexed by binary integer set serveroutput on
DECLARE
TYPE bin_array IS TABLE OF VARCHAR2(30)
INDEX BY BINARY_INTEGER;
state_array bin_array;
BEGIN
state_array(1) := 'Alaska';
state_array(2) := 'California';
state_array(3) := 'Oregon';
state_array(4) := 'Washington';
FOR i IN 1 .. state_array.COUNT LOOP
dbms_output.put_line(state_array(i));
END LOOP;
END;
/
CREATE TABLE t (
resultcol VARCHAR2(20));
DECLARE
TYPE bin_array IS TABLE OF VARCHAR2(30)
INDEX BY BINARY_INTEGER;
state_array bin_array;
BEGIN
state_array(1) := 'Alaska';
state_array(2) := 'California';
state_array(3) := 'Oregon';
state_array(4) := 'Washington';
FORALL i IN 1 .. state_array.COUNT
INSERT INTO t VALUES (state_array(i));
COMMIT;
END;
/
SELECT * FROM t; Array Performance Demo
Comparison of associative arrays and arrays indexed by binary integer set serveroutput on
DECLARE
TYPE ntab IS TABLE OF NUMBER
INDEX BY BINARY_INTEGER;
p ntab;
TYPE vtab IS TABLE OF NUMBER
INDEX BY VARCHAR2(100);
p1 vtab;
q NUMBER;
BEGIN
q := dbms_utility.get_time;
-- begin standard array load
FOR i IN 1 .. 100000
LOOP
p(i) := i;
END LOOP;
dbms_output.put_line(dbms_utility.get_time-q);
q := dbms_utility.get_time;
-- begin associative array load
FOR i IN 1 .. 100000
LOOP
p1('STUFF'|| TO_CHAR(i)) := i;
END LOOP;
dbms_output.put_line(dbms_utility.get_time-q);
END;
/
转自:http://psoug.org/reference/arrays.html
http://comsci.liu.edu/~vasilaky/db2/tables.htm
- Oracle Arrays
- kill oracle进程释放 Semaphore Arrays
- Arrays
- Arrays
- Arrays
- Arrays
- Arrays
- Arrays
- Arrays
- Arrays
- Arrays
- Arrays
- Arrays
- Arrays
- Arrays
- Arrays
- Arrays
- Arrays
- MPlayer interrupted by signal 11 in module: decode_video[解决]
- ArcGIS Server ADF开发:地图配置:美丽的新疆地图
- C中CONST的使用
- Vim的文件类型检测
- Zend:The PDO extension is required for this adapter but not loaded
- Oracle Arrays
- sql 刷新视图
- wml程序的基本结构
- Android 1.5 NDK Native C原生库开发包
- WML字符使用基本规则
- 纯字符数字的shllcode及Alpha2.c使用
- 学习摘记
- 安装程序制作软件“Smart Install Maker”使用教程
- linux数据的含义