3.12.2 表を作成できない
実行するSQL文(CREATE TABLE文)が長文のため,adbsqlコマンドの入力を誤ってしまうような場合,次の方法で表を作成してみてください。
ファイルに記述したSQL文の実行方法を次に示します。
- メモ
-
手順1.〜手順3.で作成するファイル(infile)は,テキストエディタを使用して作成することもできます。
-
SQL文を記述するファイル(infile)を作成します。
次に示すOSのコマンドを入力して,[Enter]キーを押してください。ファイルの作成先はホームディレクトリ下(/home/adbmanager),ファイル名は「infile」としてください。
vi /home/adbmanager/infile
-
実行するSQL文を入力します。
[I]キーを押してから,次に示すSQL文を入力します。
1行目にADBUSER02を入力して,2行目に#HelloHADB_02を入力してください。3行目からCREATE TABLE文を入力してください。
ADBUSER02 #HelloHADB_02 CREATE TABLE "SAMPLE" ("STATECODE" SMALLINT, "STATENAME" VARCHAR(15), "ZIPCODE" CHAR(15), "ADDRESS" VARCHAR(100), "AREA" DECIMAL(19)) IN ADBUTBL01;
-
SQL文を記述するファイル(infile)の作成を終了します。
[Esc]キーを押してから,次に示すコマンドを入力して,[Enter]キーを押してください。
:wq
これで,SQL文を記述するファイル(infile)が作成されます。
-
SQL文を記述するファイル(infile)を実行します。
HADBサーバを開始した状態で,次に示すHADBのコマンドを実行してください。
adbsql -V < infile
上記のコマンドを実行すると,手順2.で入力したSQL文が一括で実行されます。実行結果の例を次に示します。
■実行結果の例
USER-ID ? ADBUSER02 PASSWORD ? #HelloHADB_02 COMMAND ? +----2----+----3----+----4----+----5----+----6----+----7----+ CREATE TABLE "SAMPLE" ("STATECODE" SMALLINT, "STATENAME" VARCHAR(15), NEXT ? +----2----+----3----+----4----+----5----+----6----+----7----+ "ZIPCODE" CHAR(15), "ADDRESS" VARCHAR(100), "AREA" DECIMAL(19)) NEXT ? +----2----+----3----+----4----+----5----+----6----+----7----+ IN ADBUTBL01; KFAA96403-I SQL processing completed.
これで,表が作成されます。