説明
この変数は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; /