Oracle中的数组
2010-04-21 14:04
oracle中构造数组的例子:
declare
type t_varray is varray(4) of number;
arr t_varray;
begin
arr := t_varray(1,2,3,4);
for i in 1..arr.count loop
dbms_output.put_line(arr(i));
end loop;
end;
构造二维数组的例子:
declare
type t_varray is varray(4) of number;
type t_varray_varray is varray(3) of t_varray;
arr t_varray;
v_arr t_varray_varray;
begin
arr := t_varray(1,2,3,4);
v_arr := t_varray_varray(arr,arr,arr);
for i in 1..v_arr.count loop
for j in 1..v_arr(i).count loop
dbms_output.put(v_arr(i)(j));
if (j = v_arr(i).count) then
dbms_output.put_line('');
end if;
end loop;
end loop;
end;
除了使用varray,还可以使用索引表构造数组。使用索引表定义数组,不需要指定数组的上限,数组的大小只与内存限制有关。而且索引组织表定义是指定的索引项并不一定要是数值。(下一个例子是sys用户中的例子)
DECLARE
TYPE T_TAB IS TABLE OF NUMBER INDEX BY VARCHAR2(30);
V_VAR T_TAB;
V_STR VARCHAR2(30);
BEGIN
FOR I IN (SELECT OWNER, COUNT(*) CN from DBA_TABLES GROUP BY OWNER) LOOP
V_VAR(I.OWNER) := I.CN;
END LOOP;
V_STR := V_VAR.FIRST;
WHILE (V_VAR.EXISTS(V_STR)) LOOP
DBMS_OUTPUT.PUT_LINE(RPAD(V_STR, 20, ' ') || ':' || V_VAR(V_STR));
V_STR := V_VAR.NEXT(V_STR);
END LOOP;
END;
如果构造二维以上的数组,且维度不全是数值,那么就需要注意了:
DECLARE
TYPE T_NUM_TAB IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
TYPE T_VAR_TAB IS TABLE OF NUMBER INDEX BY VARCHAR2(10);
TYPE T_NUM_VAR IS TABLE OF T_NUM_TAB INDEX BY VARCHAR2(10);
TYPE T_VAR_NUM IS TABLE OF T_VAR_TAB INDEX BY BINARY_INTEGER;
V_NUM_VAR T_NUM_VAR;
V_VAR_NUM T_VAR_NUM;
BEGIN
V_NUM_VAR(5)('A') := 1;
V_VAR_NUM('A')(5) := 1;
END;
&nbs
相关文档:
Oracle 表删除大量数据后,即使表中只有几行记录,但用select count(*) from table 来查询发觉都不会马上出来,原因是该表的空间大了,查询起来很慢。解决的方法是把该表所占用的表空间缩小,或者说释放表空间。
alter table XXXX move; 这样处理后就释放了表空间了。但是释放表空间后,表的行号rowid会发生变化,而基于 ......
近日在查询某项日志的时候,发现查询非常缓慢,根据以往的经验这是由于某个日志表过大引起的,为了加快查询,决定将大部分的历史数据迁移到另外一个表中,本文主要记录删除这个大表的过程,就解决问题而言还有很多方法,但是本文侧重点在于如何处理大数据量删除的操作,及其善后工作。
首先看看我们要做数据迁移的表所占的 ......
Oracle的日期函数
常用日期型函数
1。Sysdate 当前日期和时间
SQL> Select sysdate from dual;
SYSDATE
----------
21-6月 -05
2。Last_day 本月最后一天
SQL> Select last_day(sysdate) from dual;
LAST_DAY(S ......
连接Oracle数据库的Hibernate配置文件
连接Oracle的Hibernate配置文件有两种格式,一种是xml格式的,另一种是Java属性文件格式的。下面分别给出这两种格式配置文件的代码。
1.xml格式的配置文件
下面将给出连接本地Oracle服务器上的db_database02数据库时Hibernate配置文件hibernate.cfg.xml的代码。
例程2-5:光盘\mr ......