易截截图软件、单文件、免安装、纯绿色、仅160KB

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基础语句


1、 
连接数据库
connect uuu/ooo
connect 
sys/ok as sysdba
2、 
创建表空间
create tablespace stu(表空间名
) datafile 

e:\stu.dbf

 size 100m autoextend on next 5m maxsize 500m;
3、& ......

Oracle 表删除大量数据后查询变慢问题


Oracle 表删除大量数据后,即使表中只有几行记录,但用select count(*) from table 来查询发觉都不会马上出来,原因是该表的空间大了,查询起来很慢。解决的方法是把该表所占用的表空间缩小,或者说释放表空间。
alter table XXXX move; 这样处理后就释放了表空间了。但是释放表空间后,表的行号rowid会发生变化,而基于 ......

oracle 导入/出命令

导入 IMP
Oracle 的导入实用程序 (Import utility) 允许从数据库提取数据,并且将数据写入操作系统文件。 imp 使用的基本格式: imp[username[/password[@service]]] ,以下例举 imp 常用用法。
 
1. 获取帮助
  imp help=y
2. 导入一个完整数据库
  imp system/manager file=bible_db log=dibl ......

oracle乱码

大致分为三部份,1.SQL,2.ERP本身,3.本机
1.如果是SQL导出时出现,乱码可以通过修改NLS_LANG,来避免乱码,
繁体修改成:TRADITIONAL CHINESE_TAIWAN.ZHT16BIG5
简体修改成: SIMPLIFIED CHINESE_CHINA.ZHS16GBK
英文就不用说了!!
2.如果是ERP export 时出现乱码,可以通过设置profile来设置FND: NATIVE CLIENT ENC ......

Oracle 数据类型及存储方式

Oracle 数据类型及存储方式
      袁光东 原创
      概述
      通过实例,全面而深入的分析oralce的基本数据类型及它们的存储方式。以ORACLE 10G为基础,介绍oralce
      10g引入的新的数据类型。让你对or ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号