ITPub博客

首页 > 数据库 > Oracle > PLSQL Language Reference-PL/SQL语言基础-条件编译-条件编译指令限制

PLSQL Language Reference-PL/SQL语言基础-条件编译-条件编译指令限制

原创 Oracle 作者:LuiseDalian 时间:2014-03-08 08:38:38 0 删除 编辑

条件编译指令限制

条件编译指令不能出现在方案层次的用户自定义的类型的声明中。类型声明指定了类型的属性结构,这决定了依赖的类型的属性结构和依赖的表的列结构。

注意oracle建议只使用alter type来改变类型的属性结构。

SQL解析器对PL/SQL单元中的第1个条件编译指令的位置有约束:

n  在包规范、包体、类型体、没有参数的方案层次的子程序,第1个条件编译指令不能出现在ISAS之前。

n  在具有最少一个参数的方案层次的子程序中,第1个条件编译指令不能出现在程序名后的(之前。

--正确的例子

CREATE OR REPLACE PROCEDURE my_proc (

    $IF $$xxx $THEN i IN PLS_INTEGER $ELSE i IN INTEGER $END

) IS BEGIN NULL; END my_proc;

n  在触发器或匿名块中,每1个条件编译指令不能出现在第1BEGINDECLARE之前。

n  如果匿名块中包含占位符,则占位符不能出现在条件编译指令之中。

BEGIN

    :n := 1;        -- 占位符有效使用

    $IF ... $THEN

        :n := 1;    -- 占位符无效使用

    $END

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17013648/viewspace-1103466/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    5677110