Derby データベースの内容の表示

WebSphere Message Broker のサンプルは、DB2 がインストールされているシステムでも、DB2 がインストールされていない システムでも実行することができます。 DB2 がインストールされていないコンピューターの場合、サンプルでは Derby データベースを使用できます。 ただし、その場合、DB2 Control Center がインストールされていないため、サンプルのデータベース表の内容を表示するために DB2 Control Center を使用できないことになります。

Derby データベースの内容を表示するには、ij コマンド行を使用してください。 スクリプトを下に示してあります。 このスクリプトは、WebSphere Message Broker のコマンド・コンソールから Derby データベースに接続するように正しく 構成されている ij コマンド行の実行に使用できます。 データベースの内容の表示に使用できる汎用 SQL ステートメントもいくつか示してあります。

スクリプトを含むバッチ・ファイルの作成

このバッチ・ファイルは必要なクラスパスを設定し、Derby コマンド行インターフェース ij を開始します。 このバッチ・ファイルは、指定されたデータベースへの接続も行います。

バッチ・ファイルを作成するには、以下を行います。

  1. 次のスクリプトをテキスト・エディターにコピーします。
    @ECHO OFF
    SETLOCAL
    IF "%2"=="" (
    	echo Syntax: ij [DB Name] [Default Schema {UserID}] [Port Number=1527]
    ) ELSE (
    	echo To exit the ij environment, type: exit;
    
    	set CLASSPATH=%MQSI_FILEPATH%¥classes¥db2jcc.jar;%MQSI_FILEPATH%¥classes¥db2jcc_license_c.jar;%MQSI_FILEPATH%¥classes¥derby.jar;%MQSI_FILEPATH%¥classes¥derbynet.jar;%MQSI_FILEPATH%¥classes¥derbytools.jar;%CLASSPATH%
    
    	IF "%3"=="" (
    		java -Dij.driver=com.ibm.db2.jcc.DB2Driver -Dij.connection.%1=jdbc:derby:net://localhost:1527/%1 -Dij.user=%2 -Dij.password=APP org.apache.derby.tools.ij
    	) ELSE (
    		java -Dij.driver=com.ibm.db2.jcc.DB2Driver -Dij.connection.%1=jdbc:derby:net://localhost:%3/%1 -Dij.user=%2 -Dij.password=APP org.apache.derby.tools.ij
    	)
    )
    ENDLOCAL
  2. ファイル名 mqsiij.bat で WebSphere Message Broker のインストール・ディレクトリーの bin フォルダーにファイルを保管します。 たとえば、WebSphere Message Broker がデフォルトの場所にインストールされている場合、ファイルの絶対パスは C:¥Program Files¥IBM¥MQSI¥6.0¥bin¥mqsiij.bat です。

この時点で、WebSphere Message Broker のコマンド・コンソールで ij コマンド行を開始することができます。

ij コマンド行の開始

ij コマンド行を開始するには、WebSphere Message Broker のコマンド・コンソールで次のように入力します。

mqsiij DBName SchemaName (PortNumber)

説明:

ij コマンド行を開始していれば、ij コマンド・プロンプトで SQL コマンドを入力できます。

サンプル・データベース表の内容の表示

下の SQL コマンドを実行するには、コマンド・コンソールから mqsiij.bat スクリプトを実行して、正しいスキーマ名を持つ データベースに接続しておく必要があります。 つまり、コマンド・コンソールが ij コマンド行を実行していることになります。 ここで、下の SQL コマンドを入力することができます。 各 SQL ステートメントの末尾にセミコロン (;) を付けていることを確認してください。

データベースにあるすべての表のリスト

データベース内のすべての表をリストするには、次のように入力します。

SELECT TABLENAME from SYS.SYSTABLES where TABLETYPE='T';

データベースにある表のすべての列のリスト

表の列をすべて表示するには、次のように入力します (すべての入力を 1 行で入力します)。

SELECT DISTINCT COLUMNNAME, COLUMNNUMBER from SYS.SYSTABLES, SYS.SYSCOLUMNS where SYS.SYSCOLUMNS.REFERENCEID=SYS.SYSTABLES.TABLEID and SYS.SYSTABLES.TABLENAME='table_name' order by SYS.SYSCOLUMNS.COLUMNNUMBER;

table_name は表の名前です。

データベース内の表にあるすべてのデータの表示

表内のすべてのデータを表示するには、次のように入力します。

SELECT * from table_name;

table_name は、表示したいデータが含まれている表の名前です。

表示される列の最大幅の制限

表示される列の最大幅を制限して、SQL ステートメントからの出力をより読みやすくすることができます。 出力に表示されるアンパーサンド (&) は、データ値が切り捨てられたことを示します。 列幅を 15 から 30 に設定してみてください。

表示される列の最大幅を制限するには、次のコマンドを入力します。

MAXIMUMDISPLAYWIDTH 30;

30 は、変更できる列幅です。 この最大列幅は、ユーザーが入力する後続の SQL コマンドに対して設定されます。 このコマンドは、最大列幅を変更するためにいつでも再実行できます。