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 Microsoft SQL Server からテーブルを検索するときの問題
4.22 Cloudscape 5.1 への接続時の問題
4.23 JDBC JAR ファイルの移動、名前変更、および削除中のエラー・メッセージ
4.24 EJB JAR ファイルのインポート、削除、または再インポート時に重複したスキーマ・
ノードが表示される
4.25 リレーショナル・データのエクスポート中に表示される破壊されたアラビア語のエラー
・メッセージ
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 で AS/400 Toolbox for Java JDBC ドライバーを使用して 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 にデフォルト設定されています。これらのプロパティーは、テーブルをデータ・ビューにインポートした後、テーブル・エディターで更新できます。
- DB サーバー・ビューで複数の接続を除去できない場合があります。 このような問題が発生した場合、ユーザーは接続を維持することも、1 つずつ除去することもできます。
- iSeries サーバーへの接続では、文字ストリング・データ型が正しくインポートされない場合があります。 CHAR FOR BIT DATA、VARCHAR FOR BIT DATA、および LONG VARCHAR FOR BIT DATA の型は、FOR BIT DATA のオプションなしにインポートできます。 このような場合には、データ・パースペクティブ内のテーブル・エディターを使用して、影響を受けた列を編集します。
- 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 ドライバーを使用するには、「クラス・ロケーション (Class location)」フィールドに、<DB2HOME>/java/db2jcc.jar および <DB2HOME>/java/common.jar (ここで <DB2HOME> は、DB2 をインストールしたディレクトリー) という 2 つの JAR ファイルを追加する必要があります。 これを行わない場合、エラーになります。 注: これらの JAR ファイルをクラス・ロケーションに追加しないまま新規データベース接続ウィザードを使用すると、ストアード・プロシージャーはロードされません。 「クラス・ロケーション (Class location)」フィールドにファイルを入力するために接続ウィザードをもう一度起動する必要があります。
- DB2 UDB バージョン 8 のクライアントを使用して、z/OS 上のバージョン 7 またはそれより前の DB2 に接続する場合、スキーマおよびテーブル・メタデータはインポートされない場合があります。 問題を修正するには、DB2 for z/OS PTF UQ72081 をインストールします。
- Oracle の long データ型のインポートおよび編集操作で問題が起こる場合があります。
- 極端に大きな SQL DDL ファイルは、エディターをスローダウンさせることがあります。
- 極端に大きな SQL DDL ファイルは、構文解析中または実行中にメモリー不足の例外の原因になる場合があります。
- Oracle スクリプトを編集すると、エディターのアウトライン・ビューにエラーが表示されることがあります。 例えば、「CREATE SEQUENCE」、「CREATE OR REPLACE TRIGGER」、および「END」のステートメントはエラーとして表示されます。 ただし、これらの項目はこのまま Oracle サーバーにエクスポートできます。
SQL ファイルの構文解析中にエラーになった場合、エラー・メッセージで報告された場所の次のトークンで問題が発生していることが多くあります。エラー・メッセージはタスク・リストにも表示されます。
Oracle データベース・サーバーで SQL ファイルを実行する場合は、最初にテーブル・シーケンスおよびトリガーを作成するように選択する必要があります。 これは、WebSphere が余分なスペースを挿入することによって Oracle と誤った対話を行うためです。 テーブルを作成した後、Oracle サーバー・マシンに移動してステートメントを編集し、挿入されたスペースを除去してコマンド「end;」を追加します。 次に、WebSphere に戻り、サーバーで再度 SQL ステートメントを実行します。このとき、Alter ステートメントと挿入ステートメントを選択します。
- バックエンド・データベース/カタログにある既存の ART ファイルは、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 ドライバー (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 バージョン 8 クライアントから DB2 バージョン 7 サーバーへの接続は サポートされていません。
その他の 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 ドライバーを使用してデータベースに接続する方法については、リレーショナル・データベース・ツールの資料を参照してください。
- DataDirect SequeLink 5.1、5.3 または WebSphere Connect JDBC ドライバーを使用すると、テーブルの所有者でない場合は、Microsoft SQL Server バージョン 7 からテーブルを検索することはできません。 例えば、DatabaseA の Table1 および Table2 を所有していて、データベース接続ウィザードで 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.