以下のように、PKB ファイルの先頭に定数値を持つ oracle パッケージがあります。
create or replace
PACKAGE BODY GEOHELPER AS
g_SRID pls_integer := 4326;
...
...
一部の顧客には 4326 を使用し、一部の顧客には 5638 を使用します。.bat ファイルからコンパイル/リリース時にこの値を変更する最良の方法は何ですか? パッケージの 2 つのバージョンを保持したくありません。何か案は?
以下のように、PKB ファイルの先頭に定数値を持つ oracle パッケージがあります。
create or replace
PACKAGE BODY GEOHELPER AS
g_SRID pls_integer := 4326;
...
...
一部の顧客には 4326 を使用し、一部の顧客には 5638 を使用します。.bat ファイルからコンパイル/リリース時にこの値を変更する最良の方法は何ですか? パッケージの 2 つのバージョンを保持したくありません。何か案は?
コメントで述べたように、少なくとも 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
...