Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 中VARRAY的 NOT NULL之惑

如果在定义VARRAY的时候带上NOT NULL限制,那么这个VARRAY的元素就不能为NULL.如下定义:CREATE OR REPLACE TYPE integer_varray
  AS VARRAY(5) OF INTEGER NOT NULL;
/然后有一个PLSQL块如下:DECLARE  -- Declare and initialize a null set of rows.
  varray_integer INTEGER_VARRAY := integer_varray();BEGIN  -- Loop through all records to print the varray contents.
  FOR i IN 1..varray_integer.LIMIT LOOP    -- Initialize row.
    varray_integer.EXTEND; /*没有赋值,如果不赋值是NULL的话,应该编译错误啊,结果是顺利通过编译*/  END LOOP;     -- Print to console how many rows are initialized.
    dbms_output.put     ("Integer Varray Initialized ");
    dbms_output.put_line("["||varray_integer.COUNT||"]");
   
    --varray_integer(1):=null;
   
    FOR i IN 1..varray_integer.COUNT LOOP    -- Print the contents.
    dbms_output.put     ("Integer Varray ["||i||"] ");
    dbms_output.put_line("["||varray_integer(i)||"]");
   
    if(varray_integer(i) is null) then /*本来是认为这里应该不执行,结果会打印出来*/
          dbms_output.put_line("Integer Varray ["||i||"] "|| "is null");
    end if;  END LOOP;END;
/运行结果如下:/*运行也正常,显示元素为NULL,于定义矛盾*/Integer Varray Initialized [5]
Integer Varray [1] []
Integer Varray [1] is null
Integer Varray [2] []
Integer Varray [2] is null
Integer Varray [3] []
Integer Varray [3] is null
Integer Varray [4] []
Integer Varray [4] is null
Integer Varray [5] []
Integer Varray [5] is null测试环境为:BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - ProductionLinux中模拟诊断Oracle高CPU占用Oracle 子程序参数模式,IN,OUT,NOCOPY相关资讯      Oracle基础教程 
  • Oracle块编程返回结果集详解  (11/10/2013 10:45:58)
  • Oracle基础教程之设置系统全局区  (08/22/2013 14:24:00)
  • Oracle基础教程知识点总结  (06/18/2013 07:43:32)
  • Oracle基础教程之tkprof程序详解  (10/22/2013 11:49:50)
  • Oracle基础教程之sqlplus汉字乱码  (07/18/2013 16:30:00)
  • Oracle 管理之 Linux 网络基础  (02/16/2013 18:37:35)
本文评论 查看全部评论 (0)
表情: 姓名: 字数