有人能解释一下PL/SQL中条件编译的概念吗?我已经研究过了,但不太明白使用它背后的原因以及它实际做了什么。举个例子就好了!
另外,我想了解更多关于条件编译控制令牌的信息。什么是PL/SQL中的标记?
提前感谢您的帮助。
发布于 2015-12-18 00:16:40
最好的资源是Oracle自己的文档(11g、12c)
然而,条件编译的概念是,它可以用于在编译时基于某些静态条件以不同的方式编译代码。
例如,您可能最初在一个版本的Oracle中编写一段代码,例如Oracle 11g。随着开发的发展,也许您会发现在Oracle12c中有一些新特性可以更好地完成相同的任务。您可以使用条件编译来编译11g实例中的原始代码,但仅编译较新的12c优化代码和较新的数据库。例如:
begin
$IF DBMS_DB_VERSION.VERSION < 12 $THEN
-- Do your old school stuff here
$ELSE
-- Do the new stuff here
$END
end;DBMS_DB_VERSION包包含静态常量,比如上面使用的VERSION常量。您可以在条件编译布尔表达式中使用在任何包中定义的任何常量PLS_INTEGER或BOOLEAN值。这意味着,只要在包规范中包含常量修订号或常量布尔标志,您甚至可以将条件编译基于您自己的代码的特定版本。例如:
begin
$IF MY_PACKAGE.REVISION < 2 $THEN
-- Use the legacy code here
$ELSIF MY_PACKAGE.REVISION < 4 $THEN
-- Use the newer code here
$ELSE
-- Use the latest code here
$END
end;https://stackoverflow.com/questions/34338162
复制相似问题