データベースの創成は、実表へのデータ投入で完了します。データの投入は、格納先のデータベーススペースが作成され、実表やインデックスなどの論理構造定義、および格納構造定義が完了してから行います。
データベースの創成方法として、以下の2つがあります。
rdbsloaderコマンドおよびアプリケーションのINSERT文によるデータベースの創成の概要図を以下に示します。
図2.7 データベースの創成方法

rdbsloaderコマンドによってデータベースを創成する例を以下に示します。
![]()
Solaris/Linuxの場合
rdbsloader -mi -i 在庫管理DB.関東発注表DSI /home/rdb/kantou.data
Windowsの場合
rdbsloader -mi -i 在庫管理DB.関東発注表DSI C:\DEFAULT\USERS\KANTOU.DATA
ポイント
rdbsloaderコマンドは、分割格納が定義された表のDSIを処理するとき、入力ファイル内に分割値範囲外のデータが含まれている場合、該当データを処理対象とせずに処理を続行し、正常終了します。分割範囲外のデータをエラーとし、入力ファイルの作成ミスや指定ミスによるデータ抜けを検出するためには、Eオプションを使用します。
参照
rdbsloaderコマンドに関する詳細は、“コマンドリファレンス”および“RDB運用ガイド”を参照してください。
参考
rdbsloaderコマンドによるデータベースの創成にかかる処理時間は、以下のいずれかの条件を満たす場合、DSI割付け量に依存します。なお、条件に当てはまらない場合は、入力データ量に依存します。
対象DSIの定義直後
対象DSIがアクセス禁止状態
格納構造が、以下のいずれかの場合
RANDOM構造の表
RANDOM構造の表のDSIに付加されたBTREE構造のインデックス
OBJECT構造の表
OBJECT構造の表のDSIに付加されたBTREE構造のインデックス
INSERT文によってデータベースを創成するアプリケーションの例を以下に示します。
#include<stdio.h>
main() {
EXEC SQL BEGIN DECLARE SECTION;
char SQLSTATE[6];
char SQLMSG[256];
short hcustomer;
short hprodno;
long hprice;
short horderqty;
EXEC SQL END DECLARE SECTION;
char 処理番号;
for(;;) {
printf("データ挿入...1 \n");
printf("挿入終了 ...2 \n");
scanf("%c",&処理番号);
switch( 処理番号) {
case '1':
printf("取引先の番号を入力してください.\n");
scanf("%d",&hcustomer);
printf("取引製品の番号を入力してください.\n");
scanf("%d",&hprodno);
:
EXEC SQL INSERT INTO STOCKS.発注表(取引先,取引製品,
仕入価格,発注数量)
VALUES(:hcustomer,:hprodno,:hprice,:horderqty);
continue;
case'2':
break;
}
break;
}
EXEC SQL COMMIT WORK;
:
}参照
INSERT文に関する詳細は、“SQLリファレンス”を参照してください。