我在 PKB 文件的顶部有一个带有常量值的 oracle 包,如下所示
create or replace
PACKAGE BODY GEOHELPER AS
g_SRID pls_integer := 4326;
...
...
对于一些客户,我想使用 4326 和一些 5638。在编译/发布时从 .bat 文件更改此值的最佳方法是什么?我不想有我的包的两个版本。有任何想法吗?
我在 PKB 文件的顶部有一个带有常量值的 oracle 包,如下所示
create or replace
PACKAGE BODY GEOHELPER AS
g_SRID pls_integer := 4326;
...
...
对于一些客户,我想使用 4326 和一些 5638。在编译/发布时从 .bat 文件更改此值的最佳方法是什么?我不想有我的包的两个版本。有任何想法吗?
如评论中所述,如果您至少使用 Oracle 10g R2,则可以选择条件编译。
在用于包重新编译的脚本中,使用以下 ALTER 设置特定的条件编译标志,您可以稍后在包编译期间使用该标志:
ALTER SESSION SET plsql_ccflags='variable_name:1';
然后,在包体中,使用条件编译 IF 语句:
create or replace
PACKAGE BODY GEOHELPER AS
$IF $$variable_name = 1
$THEN
g_SRID pls_integer := 4326;
$ELSIF $$variable_name = 2
$THEN
g_SRID pls_integer := 5232;
$ELSE
g_SRID pls_integer := 0;
$END
...