rdbexecsqlコマンドの起動時にiオプションを指定した場合、入力ファイル内に記述するSQL文の一部を可変要素として定義し、コマンドに引数を指定して、実行時にSQL文を補完することができます。
入力ファイルの記述方法およびコマンドの指定方法は以下のとおりです。
入力ファイルの記述方法
SQL文に、可変要素を“&1”、“&2”、…“&n”の形式で指定します。
“&n”には、コマンドの引数でn番目に指定された値が代入されます。
データベーススペースの作成先ローデバイス名を可変要素“&1”に、スキーマ名を可変要素“&2”に設定する例を以下に示します。
createdb.sql
-- データベーススペース定義 データベーススペース名は“DBSPACE1” -- ローデバイス名は1番目の引数 CREATE DBSPACE DBSPACE1 ALLOCATE RAWDEVICE &1; -- スキーマを定義 スキーマ名は2番目の引数 CREATE SCHEMA &2 -- テーブルを定義 CREATE TABLE 在庫表 ( 製品番号 SMALLINT NOT NULL, 製品名 NATIONAL CHARACTER(10) NOT NULL, 在庫数量 INTEGER, 倉庫番号 SMALLINT, PRIMARY KEY (製品番号) )
コマンドの指定方法
ファイル名の後に可変要素に代入する値を引数として指定します。
1番目の引数が、入力ファイル内に“&1”で指定した値を補完、2番目の引数が“&2”で指定した値を補完、n番目の引数が“&n”で指定した値を補完します。
データベーススペースの作成先ローデバイス名に“/dev/rdsk/c0t1d0s1”に、スキーマ名に“STOCKS”を設定する例を以下に示します。
$ rdbexecsql -i /home/usr/createdb.sql /dev/rdsk/c0t1d0s1 STOCKS
INFILEコマンドへの指定方法
対話型実行時のINFILEコマンドによるファイル読み込み時にも、ファイル名の後に可変要素に代入する値を引数として指定できます。
1番目の引数が、入力ファイル内に“&1”で指定した値を補完、2番目の引数が“&2”で指定した値を補完、n番目の引数が“&n”で指定した値を補完します。
データベーススペースの作成先ローデバイス名に“/dev/rdsk/c0t1d0s1”に、スキーマ名に“STOCKS”を設定する例を以下に示します。
$ rdbexecsql -d SQL>INFILE /home/usr/createdb.sql /dev/rdsk/c0t1d0s1 STOCKS :
注意
可変要素を指定する場合は、“-”で始まる値を引数に指定することはできません。