環境変数 X_RUNSQL_CREATE_TABLE や X_RUNSQL_CREATE_INDEX を使用して、RUNSQL を構成することも可能です。これらの変数により、DBMS 特有の文字列を「作成」コマンドを実行する前に追加することができます。
注: 構文チェックは行われません。追加の情報が不正な構文の場合、DBMS 呼び出しはエラーとなり、エラー・コードが戻されます。
以下の例では、この機能を使ってテーブルやインデックスを別の保管領域に分割する方法が示されています。
Windows の SQLANYWHERE:
SET X_RUNSQL_CREATE_TABLE="IN DATA"
SET X_RUNSQL_CREATE_INDEX="IN IDX"
(DATA および IDX は、コマンド CREATE や DBSPACE により事前に作成された SQL/Anywhere データベースのスペースです。)
サンプルのテーブル PSLMST では、RUNSQL により、次のステートメントでテーブル PSLMST が作成されます。
create table PSLMST (...column list...) IN DATA
さらに、次のステートメントで相対レコード番号のインデックスが作成されます。
create unique index PSLMST_R on PSLMST (x_rrno) IN IDX
LINUX の ORACLE:
X_RUNSQL_CREATE_TABLE="tablespace DATA"; export X_RUNSQL_CREATE_TABLE
X_RUNSQL_CREATE_INDEX="tablespace IDX"; export X_RUNSQL_CREATE_INDEX
(DATA および IDX は、コマンド CREATE や TABLESPACE により事前に作成された Oracle のテーブル・スペースです。)
サンプルのテーブル PSLMST では、RUNSQL により、次のステートメントでテーブル PSLMST が作成されます。
create table PSLMST (...column list...) tablespace DATA
さらに、次のステートメントで相対レコード番号のインデックスが作成されます。
create unique index PSLMST_R on PSLMST (x_rrno) tablespace IDX
注:x_dbmenv.dat の DBMS エントリーに次の設定が含まれている場合、主キーのインデックスは X_RUNSQL_CREATE_INDEX 値のみを使用します。
SUPPORTS_PRIMARY_KEY=NO
CONVERT_PRIMARY_KEY_TO_INDEX=YES