3

以下のように、PKB ファイルの先頭に定数値を持つ oracle パッケージがあります。

create or replace
PACKAGE BODY GEOHELPER AS

g_SRID pls_integer := 4326;
...
...

一部の顧客には 4326 を使用し、一部の顧客には 5638 を使用します。.bat ファイルからコンパイル/リリース時にこの値を変更する最良の方法は何ですか? パッケージの 2 つのバージョンを保持したくありません。何か案は?

4

1 に答える 1

3

コメントで述べたように、少なくとも 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

...
于 2013-10-02T09:42:51.467 に答える