説明
この変数は、V4.0.0_CEバージョンから導入されました。
機能の概要
plsql_ccflagsは、条件付きコンパイルにおける条件判断を制御するために使用されます。
適用対象
この変数はOceanBaseデータベースのOracleモードにのみ適用されます。
権限要件
変数の確認
グローバルレベル
sysテナントとすべてのユーザーテナントは、SHOW VARIABLESステートメント、またはSYS.TENANT_VIRTUAL_GLOBAL_VARIABLEビュー(Oracleモード)およびinformation_schema.GLOBAL_VARIABLESビュー(MySQLモード)を使用してグローバルシステム変数の値を確認できます。セッションレベル
sysテナントとすべてのユーザーテナントは、SHOW VARIABLESステートメント、またはSYS.TENANT_VIRTUAL_SESSION_VARIABLEビュー(Oracleモード)およびinformation_schema.SESSION_VARIABLESビュー(MySQLモード)を使用してセッションシステム変数の値を確認できます。
変数の変更
グローバル有効
sysテナントはグローバルシステム変数の値を直接変更できます。MySQLユーザーテナントは、グローバルシステム変数の値を変更するには
SUPERまたはALTER SYSTEM権限が必要です。Oracleユーザーテナントは、グローバルシステム変数の値を変更するには
ALTER SYSTEM権限が必要です。
セッション有効
sysテナントとすべてのユーザーテナントは、自身のテナントのセッションシステム変数の値を直接変更できます。
プロパティの説明
| プロパティ | 説明 |
|---|---|
| パラメータタイプ | Varchar |
| 値の範囲 | PL Compiler仕様に準拠する文字列 |
| 適用範囲 |
|
| 変更は可能か | はい。SET ステートメントを使用して変更できます。 |
使用方法
plsql_ccflagsの構成形式はplsql_ccflags= '<v1>:<c1>,<v2>:<c2>,...,<vn>:<cn>'であり、その中で
- viはPL/SQL識別子であり、大文字と小文字は区別されず、予約語である場合もあります。
- ciはviに対応する値であり、Boolean、pls_integer、またはNULLであり、大文字と小文字は区別されません。
設定例
plsql_ccflags コンパイル時条件識別子とその対応する値をそれぞれ v_t に true、v_f に false、v_1 に 6 を設定します。v_f が null でない場合、DBMS_OUTPUT.PUT_LINE ステートメントが実行されて情報が出力されます。
セッション有効
obclient> ALTER SESSION SET plsql_ccflags = 'v_t:true,v_f:false,v_1:6'; create or replace function my_func return number is begin $if $$v_f is not null $then DBMS_OUTPUT.PUT_LINE('$$PLSQL_UNIT = ' || $$PLSQL_UNIT); DBMS_OUTPUT.PUT_LINE('$$PLSQL_UNIT_OWNER = ' || $$PLSQL_UNIT_OWNER); $end return 200; end; /グローバル有効
obclient> SET GLOBAL plsql_ccflags = 'v_t:true,v_f:false,v_1:6'; create or replace function my_func return number is begin $if $$v_f is not null $then DBMS_OUTPUT.PUT_LINE('$$PLSQL_UNIT = ' || $$PLSQL_UNIT); DBMS_OUTPUT.PUT_LINE('$$PLSQL_UNIT_OWNER = ' || $$PLSQL_UNIT_OWNER); $end return 200; end; /