1.0 概要
2.0 サポートされるソフトウェアと仕様
3.0 制限
3.1 ストアード・プロシージャーから Java Bean または EJB メソッドを生成するにはオンラインでなければならない
4.0 既知の問題
4.1 データベース・モデル
4.2 SQL 照会
4.3 データベース接続
4.4 SQL DDL
4.5 エラー報告
4.6 SQL ステートメントを実行すると、Oracle で間違ったテーブルが作成される
4.7 データのエクスポート
4.8 データベース・プロジェクトでのフォルダーの名前変更
4.9 SQL コメント
4.10 SQL ビルダーでオープンする前に、SQL ステートメントをチェックインおよびチェックアウトする
4.11 新規に作成された SQL ステートメントをバージョン管理に即時追加はしない
4.12 Java ストアード・プロシージャーの編集
4.13 DB2/390 (CP930) に接続中に DBCS データが切り捨てられる
4.14 読み取り専用文書のエディターをクローズするときに変更内容が失われる
4.15 非英語ロケールのスキーマ・オブジェクト ID に引用符が欠落している
4.16 DB2 サーバーに接続中
4.17 DB2 バージョン 7 クライアントを使用する際、DB2 バージョン 8 からの Java ストアード・プロシージャーのドロップがサポートされない
4.18 DB2 テーブル UDF について戻された SQL データ型を手動で変更する
4.19 WebSphere Studio と一緒に配布された Sequelink 5.1 に問題がある
4.20 DataDirect Sequelink 5.3 ドライバー
4.21 WebSphere Application Server - Express 例の SQL ファイルにエラーが含まれている可能性があるが、正常に実行できる
4.22 Microsoft SQL Server からテーブルを検索しているときの問題
4.23 Cloudscape 5.1 に接続しているときの問題
4.24
JDBC JAR ファイルを移動/名前変更/削除しているときにエラー・メッセージが出る
4.25 EJB JAR ファイルをインポート、削除、または再インポートしているときに、重複したスキーマ・ノードが現れる
4.26 リレーショナル・データのエクスポート中に、破壊されたアラビア語エラー・メッセージが出る
WebSphere Studio のリレーショナル・データベース・ツールを使用すると、 データベースへの接続、データベース設計のブラウズまたはインポート、ウィザードを使用した新規データベースの設計、 データベースへの新規設計のエクスポート、SQL ビルダーを使用した SQL 照会の作成および実行、 DB2 ストアード・プロシージャーや DB2 ユーザー定義関数などの作成と実行を行うことができます。 リレーショナル・データベース・ツールには、「データ・パースペクティブ・データ定義」ビューと「DB サーバー」ビューを使用してアクセスします。
リレーショナル・データベース・ツールは、以下のデータベース・タイプへの接続 およびそれらからのインポートをサポートしています。
- SQL 92、99
- Cloudscape 5.0.4
- DB2 UDB 6.1、7.1、7.2、8.1
- DB2 UDB for iSeries 4.5、5.1
- DB2 UDB for OS/390 6、7
- DB2 UDB Express Edition 8.1
- Oracle 8i 8.1.7
- Oracle 9i 9.0.1
- SQL Server Enterprise 7.0 SP2
- SQL Server Enterprise 2000
- Sybase Adaptive Server Enterprise 11.9.2、12、12.5
- Informix Dynamic Server.2000 9.2
- Informix Dynamic Server 7.3、9.3、9.3.1
- MySQL 3.23
- InstantDB 3.26
SQL ウィザードおよび SQL 照会ビルダーでの SQL サポートは、データベース・ベンダーが提供するサポートのレベルに依存します。
全選択のサポート:
結合のサポート:
- DB2、Oracle、Cloudscape および Sybase にのみ適用されます。
- DB2 の場合、Union、Union All、Except、Except All、Intersect、および Intersect All の各演算子と値文節がサポートされます。
- Oracle の場合、Union、Union All、MINUS および Intersect の各演算子がサポートされます。
- Sybase の場合、Union および Union All の各演算子がサポートされます。
- Cloudscape の場合、Union、Union All、および値文節がサポートされます。
照会結果のグループ化のサポート:
- DB2: 内部結合、左外部結合、右外部結合、全外部結合。
- Oracle: 内部結合、左外部結合、および右外部結合。左および右外部結合の構文は、Oracle の where 文節における "+" 構文と整合性があります。
- Sybase、Cloudscape および MySQL: 内部結合、左外部結合、および右外部結合。
キャスト式のサポート:
- DB2: Group By、Rollup、Cube、および Grouping Sets
- Oracle: Group By、Rollup、および Cube
- Sybase: Group By
- Cloudscape: Group By
- DB2 - CAST expression AS expression
- MS SQL Server - CAST expression AS data_type
- Oracle - TRANSLATE はサポートされていません
Linux では、Java JDBC ドライバー用の AS/400 ツールボックスを使用して DB2 Universal Database for iSeries V5R1 に接続すると破壊が発生することがあります。 この問題は、間違ったパスワードを入力したり、パスワード・フィールドをブランクにしておくと発生します。 この問題が発生した場合は、製品を再始動し、正しいパスワードを使って再度接続してください。
ストアード・プロシージャーから Java Bean または EJB メソッドを生成するためのウィザードを使用するには、オンラインで作業しなければなりません。
- 現在、索引のモデリング、検査および固有の制約、トリガー、構造化タイプ、識別列などはサポートされていません。
- リレーショナル・データベース・ツールは、ビューでのチェック・オプションをサポートしません。
- 照会ステートメント内の不要な大括弧があると、パーサー・エラーが発生します。
- 照会の WHERE 条件文節での括弧の使用は現在サポートされていません。
- 大きな SQL ファイルは、エディターをスローダウンさせる場合があります。
- Oracle では、更新ステートメントは、大括弧で囲まれたグループを使わずに、各列に値を個別に割り当てなければなりません。 個々に列を追加し、 副照会を使用して値を追加するには、「値テーブル・セル (Value table cell)」 コンボ・ボックスの「式のビルド (Build Expression)」オプションを使用して その列の照会式を作成してください。
- ステートメントで使われるデータベース・オブジェクトを変更すると、 ローカルのデータ・モデルに対してステートメントの構文解析を正常に行わなくなるため、SQL ビルダーが失敗する原因となります。
- ビューを編集して、その後にビューを含むステートメントをオープンすると、予期しないワークベンチのシャットダウンが行われることがあります。
- データベース接続が WebSphere Studio の外部で強制的に切断された場合、 ステートメント実行時に接続のプロンプトが表示されません。接続をリストアするには、データベースを「DB サーバー」ビューからプロジェクトに再インポートしてください。
- ユーザー定義関数から派生したビューを使用して照会を作成することはできません。
- データベース・オブジェクトのドラッグ・アンド・ドロップは、「DB サーバー」ビューでなく、「データ定義」ビューにおいてのみサポートされます。
- DATALINK 型の列を持つ DB2 UDB または DB2 for iSeries のテーブルをインポートしても、 その列のリンク制御オプションはインポートされません。 DATALINK の長さはデフォルトでは 200 に設定されており、リンク・オプションは NO LINK CONTROL にデフォルト設定されています。これらのプロパティーは Data View にインポートした後、テーブル・エディターで更新できます。
- DB サーバー・ビューで複数の接続を除去しても、機能しない場合があります。 このような問題が発生した場合、ユーザーは接続を維持することも、1 つずつ除去することもできます。
- iSeries サーバーへの接続では、文字ストリング・データ型が正しくインポートされない場合があります。 CHAR FOR BIT DATA、VARCHAR FOR BIT DATA、および LONG VARCHAR FOR BIT DATA の型は、FOR BIT DATA のオプションなしにインポートできます。 このような場合には、「データ・パースペクティブ (Data perspective)」内のテーブル・エディターを使用して、影響を受けた列を編集します。
- DBCS 文字を含むスキーマ・オブジェクト名は、iSeries から正しくインポートできない場合があります。 区切り ID に引用符が欠落している可能性があります。 このような場合には、テーブル・エディターを使用して列と制約名を編集してください。
- OS/390 の接続では、基本キー制約の ID はインポートされません。
- 列のデフォルト値が、ストアード・プロシージャー、関数、あるいは識別文節で定義されている場合は、正常にインポートされず、テーブルの文書では非 ASCII 文字になることがあります。 非 ASCII 文字は、文書のロード時に問題を引き起こします。 この状態になった場合は、問題となっている tblxmi 文書を手動で編集して、デフォルトのタグと値を削除する必要があります。
- SQL サーバー・データベースに接続するために WebSphere Connect JDBC ドライバーを使う場合は、一般的にはクラス・ロケーションを指定するために 3 つの JAR ファイルが必要です。これらのJAR ファイルは、結合して単一の JAR ファイルにすることをお勧めします。 そうしないと、接続後にウィザードを再オープンしたときに、ファイルが異常に大きくなります。 これは、「ドライバー・ロケーション (driver location)」フィールドの長さが原因です。
- DB2 バージョン 8 クライアントから新規データベース接続を作成するとき、IBM DB2 NET DRIVER JDBC Driver を使用したい場合は、これらの 2 つの JAR ファイルを「クラス・ロケーション (Class location)」フィールド: <DB2HOME>/java/db2jcc.jar および <DB2HOME>/java/common.jar に追加する必要があります (ここで、<DB2HOME> は、DB2 がインストールされているディレクトリーです)。 そうしないとエラーになります。注: これらの JAR ファイルをクラス・ロケーションに追加せずに新規データベース接続ウィザードを使用すると、ストアード・プロシージャーはロードされません。 これらのファイルを「クラス・ロケーション (Class location)」に入れるには、接続ウィザードを立ち上げなければなりません。
- z/OS で DB2 UDB バージョン 8 クライアントを使用してバージョン 7 またはそれ以前の DB2 に接続する場合は、スキーマおよびテーブル・メタデータがインポートされないことがあります。 この問題をフィックスするには、DB2 for z/OS PTF UQ72081 をインストールします。
- Oracle の long データ型のインポートおよび編集操作で問題が起こる場合があります。
- 極端に大きな SQL DDL ファイルは、エディターをスローダウンさせることがあります。
- 極端に大きな SQL DDL ファイルは、構文解析中または実行中にメモリー不足の例外の原因になる場合があります。
- Oracle スクリプトを編集するとエディターの「アウトライン」ビューにエラーが表示される可能性があります。たとえば、「CREATE SEQUENCE」、「CREATE OR REPLACE TRIGGER」、および「END」のステートメントはエラーとして表示されます。 ただし、これらの項目は引き続き Oracle サーバーにエクスポートすることができます。
SQL ファイルの構文解析中にエラーになった場合、エラー・メッセージで報告された場所の次のトークンで問題が発生していることが多くあります。 エラー・メッセージはタスク・リストにも表示されます。
SQL ファイルを Oracle データベース・サーバーで実行するときは、最初に、テーブルのシーケンスとトリガーを作成することを選択する必要があります。 それは、WebSphere が余分のスペースを挿入して Oracle と間違った対話をするからです。 テーブルを作成したら、Oracle サーバー・マシンへ進み、挿入されたスペースを除去してコマンド 'end;' を追加するようステートメントを編集します。 次に、WebSphere に戻り、再度サーバーで SQL ステートメントを実行しますが、今回は Alter ステートメントと insert ステートメントを選択します。
- バックエンド・データベース/カタログにある既存の作成物は、SQL DDL スクリプトで「サーバーで実行」 を実行することによってドロップすることができます。 データ・オブジェクト (例: データベース、スキーマ、テーブルなど) で既存のオブジェクトをドロップしたい場合は、 ポップアップ・メニューから「DDL の生成」を選択して、既存のステートメントをドロップするように指定します。 生成した SQL DDL スクリプト上で、ポップアップ・メニューから「サーバーで実行」を選択してください。 現在、オブジェクトがバックエンド・データベース/カタログに存在しない場合には、 データ・オブジェクトで「サーバーにエクスポート」を選択すればエクスポートできます。
- 特定のステートメントを Oracle サーバーにエクスポートすると、 サーバー上で ID のスペーシングに問題が発生することがあります。 たとえば、CREATE OR REPLACE TRIGGER SET_TRANSACTIONS_TRANID BEFORE INSERT ON TRANSACTIONS FOR EACH ROW WHEN (NEW.TRANID IS NULL) BEGIN SELECT TRANSACTIONS_TRANID_SQ.NEXTVAL INTO :NEW.TRANID FROM DUAL; END; などのステートメントです。
サーバーに対してこのスクリプトを実行すると、SELECT 文節に指定した ID が異なった形で表示されることがあります。 たとえば、「TRANSACTION_TRANID_SQ.NEXTVAL」は「TRANSACTIONS_TRANID_SQ . NEXTVAL」のように表示されます。
データベースを含むプロジェクト内のフォルダー名を変更すると、プロジェクト内のデータベース関連ファイルの URI 参照が壊れ、 エラーになります。 フォルダーの名前変更が必要なときは、データベース関連ファイルのすべての関連する参照を変更しなければなりません。 たとえば、以下の参照がテーブル・オブジェクト・ファイル (拡張子 .tblxmi を持つ) にあり、プロジェクトのデータベースが folder1 という名前のフォルダーに含まれています。
<database href="folder1/Con1_VIDEOS.dbxmi#RDBDatabase_1"/>
フォルダー名が folder2 に変更された場合、この変更を反映するために この行を次のように変更する必要があります。
<database href="folder2/Con1_VIDEOS.dbxmi#RDBDatabase_1"/>
SQL コメント (行頭に二重ダッシュ --) は SQL ビルダーではサポートされません。
バージョン管理されている何らかの SQL ステートメント (.sqx ファイル) を編集する場合、チェックインまたはチェックアウトするときにステートメントが SQL ビルダー内でオープンされていないことを確認してください。 ファイルをチェックアウト (ナビゲーター・ビュー内で) し、その後ステートメントを編集してください。 ステートメントの編集を終了したあと、変更を保管し、SQL ビルダーをクローズしてファイルを再びチェックインしてください。
新規 SQL ステートメントを作成して、それをバージョン管理に追加するようにプロンプトが出されても、そのようにはしないでください。 SQL ビルダーを使用してファイルに必要な変更をしてから、ファイルをクローズし、その後バージョン管理に追加してください。
- プロジェクトが Java プロジェクトの場合、エディターは、Java ストアード・プロシージャーの最初の行にあるマーカー・バーに電球アイコンを表示します。 このマーカーは無視して構いません。 Java ストアード・プロシージャーをビルドするときに、マーカーが問題を起こすことはありません。
- エディターを使用すると、 Java ストアード・プロシージャーのソース・コードにブレークポイントを追加することができます。 しかし、Java ストアード・プロシージャーのデバッグがサポートされていないため、これらのブレークポイントは無視されます。
JDBC の制約が原因で、DB2/390 (CP930) に接続するとき、UTF-8 エンコード方式のデータ長に基づき、 一部の DBCS データで切り捨てが行われます。 10 SBCS カタカナ文字は「SELECT」ステートメントに 3 文字のカタカナとして受け取られます。 OS/390 のテーブルに保管される実際のデータは 16 進数「8182838485868788898A」で、10 文字の日本語カタカナです (1 文字 1 バイト)。 しかし、デフォルト設定で JDBC ドライバーを使用すると、受信した照会データは、UTF-8 では有効な 9 バイト・ストリングである 3 文字 (「efbdb1efbdb2efbdb3」) のみを表示します。 これは JDBC ドライバーで「efbdb1efbdb2efbdb3efbdb4efbdb5efbdb6efbdb7efbdb8efbdb9efbdba」から切り捨てられた結果です。
文書をチェックアウト (つまり読み取り専用とマーク) した際、エディターが文書でオープンしていると、 保留されていた変更はエディターをクローズしたときにすべて失われます。 文書をチェックアウトしてから、それをエディターでオープンするようにしてください。
非英語のロケールの場合、JDBC カタログ・ローダーは、スキーマ・オブジェクト ID を区切るべきかどうか決定できません。 区切るべき ID については、インポートしたあと、スキーマ/テーブル・エディターをオープンして、スキーマ・オブジェクトを名前変更してください。 どのような場合 ID を区切るべきなのかについては、データベース・サーバーの資料を参照してください。
- DB2 Universal Database for iSeries に接続中は、新規データベース接続ウィザードの 「JDBC ドライバー (JDBC driver)」プルダウン・フィールドから 「AS/400 Toolbox for Java JDBC Driver」を選択しなければなりません。 詳しくは、ヘルプ・トピックの『DB2 Universal Database for iSeries ドライバーを使用して JDBC 接続を作成する (Creating a JDBC connection using a DB2 Universal Database for iSeries driver)』を参照してください。
- Linux、UNIX、および Windows での DB2 Universal ドライバーは、Java および SQLJ ストアード・プロシージャーをサポートしません。
- Linux、UNIX、および Windows での DB2 v8 クライアントから DB2 v7 サーバーへの接続はサポートされません。
その他の DB2 サーバーについては、データベース接続時の JDBC ドライバーの選択についてオンライン・ヘルプを参照してください。
クライアント・ワークステーション上で DB2 Universal Database のバージョン 7 を使用して、サーバー上の DB2 Universal Database バージョン 8 に接続している場合、 DB2 バージョン 8 サーバーから Java ストアード・プロシージャーをドロップすることはできません。
「新しい SQL ユーザー定義関数 (New SQL User-Defined Function)」ウィザードを使用して DB2 テーブル UDF を作成すると、それぞれの列の戻りデータに対し、ウィザードが SQL データ型を推奨します。
ウィザードが該当するデータ型を列に対してマップできない場合、または列に対して異なる戻りデータ型を使用する場合は、 生成された UDF をエディターでオープンし、データ型を手動で変更してください。
WebSphere Studio では、WebSphere ブランド・バージョンの Sequelink 5.1 JDBC クライアントが WS_installdir/runtimes/aes_v4/lib/sljc.jar に組み込まれています。 WebSphere Studio リレーショナル・データベース・ツールは、このバージョンのクライアントを JDBC 接続に使用できるようになっていません。 次のようなエラー・メッセージを受け取ることがあります。
IWAS0126E Problems encountered while trying to establish connection connection_name Reason: Connection was not established because the selected JAR file is not a WebSphere branded DataDirect client. Ensure the selected JAR comes from a WebSphere install.
この JAR を接続ウィザードの「JDBC クラス・ロケーション (JDBC class location)」フィールドで指定すると、上記のエラー・メッセージが出されます。 リレーショナル・データベース・ツールで使用できるバージョンのクライアントが IBM サポートから提供されています。
WebSphere Studio バージョン 5.x には、新規バージョンの DataDirect Sequelink JDBC クライアントが組み込まれています。 DataDirect Sequelink 5.3 JDBC クライアントは、WS_installdir/runtimes/base_v5/lib/sljc.jar アーカイブに入っています。 Sequelink 5.1 JDBC ドライバーを使用してデータベースに接続する方法については、リレーショナル・データベース・ツールの文書を参照してください。
各 WebSphere Application Server - Express 例の Setup/databases プロジェクト・フォルダー内の SQL ファイルには、「データ・パースペクティブ (Data Perspective)」の「アウトライン」ビューに示されているような構文解析エラーが含まれていることがあります。 ただし、この SQL ファイルは、例の README.html ファイルで説明されているような「データベース・サーバーで実行 (Run on database Server)」アクションを使用して正常に実行されます。
- DataDirect SequeLink 5.1、5.3、または WebSphere Connect JDBC ドライバーを使用すると、テーブルの所有者でない限り、テーブルを Microsoft SQL Server バージョン 7 から検索することはできません。たとえば、Table1 と Table2 を DatabaseA に所有している場合に、DatabaseB に接続するようデータベース接続ウィザードで指定すると、Table1 と Table2 が DatabaseB に属していなくても、それらのテーブルのみが表示されますが、接続に使用するユーザー ID がこれらのテーブルの所有者であるため検索されます。
- DataDirect SequeLink 5.1 または 5.3 JDBC ドライバーを使用して Microsoft SQL Server 2000 からテーブルを検索する場合も、それらのテーブルを所有していなければなりません。
Cloudscape 5.1 を使用して接続および切断のアクションを複数回実行すると、列のないテーブルが「DB サーバー (DB Servers)」ペインに作成されます。 この問題が発生した場合は、WebSphere Studio を再始動してください。
JDBC JAR ファイル、つまり、接続ウィザードのクラス・ロケーション・フィールドに指定されている JAR ファイルは、最初に接続を確立した後で現行 JVM セッションで使用するためにロックされます。 JAR ファイルを名前変更/移動/削除しようとすると、次のエラー・メッセージが出ます。 「このファイルは他のプロセスで処理されているので、このプロセスではファイルにアクセスできません。 (The process cannot access the file because it is being used by another process.)」 ワークベンチをシャットダウンすると、このファイルはアンロックされます。
データ・パースペクティブまたは J2EE パースペクティブのいずれか、またはその両方をオープンにしたまま EJB JAR ファイル (サンプルまたはそれ以外) のインポート、削除、および再インポートを実行すると、その EJB JAR ファイルのバックエンド・データベースの下に重複したスキーマ・ノードが現れます。 これらの項目は害を及ぼしませんが、パースペクティブをシャットダウンし再始動して重複した項目を除去することをお勧めします。
アラビア語ロケールを使用してリレーショナル・データを UTF-8 UDB DB2 V7 データベースにエクスポートしているときにエラーが発生すると、破壊されたエラー・メッセージが出ることがあります。 この問題の解決方法はありません。
(C) Copyright IBM Corporation 2000, 2003. All Rights Reserved.