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 綱目物件識別碼遺漏非英文語言環境的引號
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 支援會視資料庫廠商所提供的支援層次而定。
Fullselect 支援:
Join 的支援:
- 僅適用於 DB2、Oracle、Cloudscape 和 Sybase。
- 針對 DB2,Union、Union All、Except、Except All、Intersect 和 Intersect All 運算子以及 VALUES 子句都受支援。
- 針對 Oracle,其支援 Union、Union All、MINUS 和 Intersect 運算子。
- 針對 Sybase,其支援 Union 和 Union All 運算子。
- 針對 Cloudscape,其支援 Union、Union All 以及 VALUES 子句。
分組查詢結果的支援:
- DB2:inner join、left outer join、right outer join、full outer join。
- Oracle:inner join、left outer join 以及 right outer join。 left 和 right outer join 的語法和 Oracle where 子句中 "+" 的語法一致。
- Sybase、Cloudscape 和 MySQL:inner join、left outer join 以及 right outer join。
Cast 表示式的支援:
- DB2:Group By、Rollup、Cube 和 Grouping Sets
- Oracle:Group By、Rollup 和 Cube
- Sybase:Group By
- Cloudscape:Group By
- DB2 - CAST 表示式 AS 表示式
- MS SQL Server - CAST 表示式 AS data_type
- Oracle - 不支援轉換
在 Linux 中,當利用 AS/400 Toolbox for Java JDBC 驅動程式來連接至 DB2 Universal Database for iSeries V5R1 時,可能會當掉。 當您輸入不正確的密碼,或將密碼欄位保留空白,就會發生這個問題。 如果發生這個問題,請重新啟動產品,再利用正確的密碼來重新連接。
如果要使用可從儲存程序產生 Java Bean 或 EJB 方法的精靈,您必須在線上作業。
- 目前不支援建立索引、檢查與唯一限制、觸發、結構化類型或身分識別直欄的模型。
- 關聯式資料庫工具不支援視圖中的檢查選項。
- 查詢陳述式中如果有不必要的方括弧 ([ ]) 會導致剖析器錯誤。
- 目前尚未支援在查詢 WHERE 條件子句中使用括弧。
- 大型 SQL 檔可能會使編輯器的速度變慢。
- 如果是 Oracle,update 陳述式必須個別指派值給直欄,而不使用以方括弧括住的群組。 請個別新增直欄及利用子查詢新增值,請在「值」表格資料格組合框中使用「建置表示式」選項來建立直欄的查詢表示式。
- 修改陳述式使用的資料庫物件可能會導致「SQL 建置器」失敗,原因是它不再能順利剖析本端資料模型上的陳述式。
- 如果您編輯視圖,接著開啟包含該視圖的陳述式,可能會導致工作台非預期地關閉。
- 如果您在 WebSphere Studio 外強制切斷資料庫連線,在執行陳述式時,系統並不會提示您建立連線。請從「DB 伺服器」視圖將資料庫重新匯入專案中,以還原連線。
- 您無法利用源自使用者定義函數的視圖來建立查詢。
- 僅「資料定義」視圖支援拖放資料庫物件,「DB 伺服器」視圖不支援。
- 如果您匯入的 DB2 UDB 或 DB2 for iSeries 表格具有類型為 DATALINK 的直欄,該直欄的鏈結控制選項可能不會匯入。DATALINK 長度的預設值為 200,而鏈結選項的預設值為 NO LINK CONTROL。在將表格匯入「資料」視圖之後,您可以在表格編輯器中更新這些內容。
- 在「DB 伺服器」視圖中移除多個連線不一定每次都會成功。 如果您遇到這類問題,您可以保留連線,或繼續一次移除一個連線。
- iSeries 伺服器連線的字串資料類型可能不會適當地匯入。類型 CHAR FOR BIT DATA、VARCHAR FOR BIT DATA 和 LONG VARCHAR FOR BIT DATA 匯入時可能不含 FOR BIT DATA 選項。在這些情況下,請利用「資料」視景中的表格編輯器來編輯受影響的直欄。
- 無法從 iSeries 中適當匯入含有 DBCS 字元的綱目物件名稱。 定界識別碼可能遺漏引號。 在這些情況下,請利用表格編輯器來編輯直欄和限制名稱。
- 沒有匯入 OS/390 連線的主要索引鍵限制識別碼。
- 沒有正確匯入本身是儲存程序、函數或是用 identity 子句來定義的直欄預設值,且可能導致在表格文件中產生非 ASCII 字元。 當載入文件時,非 ASCII 字元可能會造成問題。 當發生這個情況時,必須手動編輯問題 tblxmi 文件,移除預設標示和值。
- 當利用 WebSphere Connect JDBC 驅動程式來連接 SQL Server 資料庫時,您通常需要 3 個 JAR 檔來指定類別位置。 建議您將這三個 JAR 檔組合成單一 JAR 檔。 否則,在建立連線之後重新開啟精靈時,它會大到不正常。 這是驅動程式位置欄位的長度所造成的。
- 當從 DB2 第 8 版用戶端建立新資料庫連線時,如果您要使用 IBM DB2 NET DRIVER JDBC 驅動程式,您必須將這兩個 JAR 檔加入類別位置欄位中: <DB2HOME>/java/db2jcc.jar 和 <DB2HOME>/java/common.jar(其中 <DB2HOME> 是 DB2 的安裝目錄)。 如果您沒有執行這個動作,就會出現錯誤。 附註:如果您使用「新建資料庫連線」精靈,但沒有將這些 JAR 檔加入類別位置中,就不會載入儲存程序。 您必須重新呼叫連線精靈,在類別位置欄位中輸入檔案。
- 當利用 DB2 UDB 第 8 版用戶端來連接至 z/OS 中的 DB2 第 7 版或更早的版本時,無法匯入綱目和表格 Meta 資料。 如果要修正這個問題,請安裝 DB2 for z/OS PTF UQ72081。
- 當您的匯入或編輯作業包含 Oracle long 資料類型時,可能會發生問題。
- 非常大的 SQL DDL 檔可能會使編輯器的速度變慢。
- 在剖析或執行期間,非常大的 SQL DDL 檔可能會導致記憶體不足的異常狀況。
- 編輯 Oracle Script 可能會在編輯器的概要視圖中顯示錯誤。 比方說,"CREATE SEQUENCE"、"CREATE OR REPLACE TRIGGER" 和 "END" 陳述式會顯示成錯誤。 不過,您仍可以繼續將這些項目匯出至 Oracle 伺服器中。
當您在剖析 SQL 檔期間發生錯誤時,通常問題是發生在錯誤訊息報告之記號後的下一個記號上。錯誤訊息也會顯示在作業清單中。
當在 Oracle 資料庫伺服器中執行 sql 檔時,開始時,必須選擇建立表格序列和觸發。 這是因為 WebSphere 會插入額外的空格,造成與 Oracle 的交談不正確。 建立表格之後,請移至 Oracle 伺服器機器,再編輯陳述式以移除插入的空格,加入 'end;' 指令。 之後,再返回 WebSphere,在伺服器中執行 sql 陳述式,這次選取 Alter 陳述式和 insert 陳述式。
- 您只能對 SQL DDL Script 執行在伺服器中執行,以除去後端資料庫/型錄中現有的成品。針對資料物件(例如:資料庫、綱目、表格),如果您要除去現有的物件,您應從蹦現功能表中選取產生 DDL,並指定要除去現有的陳述式。針對產生的 SQL DDL Script,請從蹦現功能表中選取在伺服器中執行。如果物件目前不在後端資料庫/型錄上,只要針對資料物件選擇匯出至伺服器即可。
- 將特定陳述式匯出至 Oracle 伺服器,可能使伺服器中的識別碼產生間距。 比方說,類似這樣的陳述式: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;
在針對伺服器執行這個 Script 之後,SELECT 子句中所指定的識別碼可能會顯示成不同外觀, 比方說,"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 資料會被截斷。"SELECT" 陳述式可能會將 10 個 SBCS Katakana 字元接收成 3 個 Katakana 字元。儲存在 OS/390 表格中的實際資料為十六進位的 '8182838485868788898A',這是 10 個日文 Katakana 字元(一個位元組代表一個字元)。可是,當您以預設值使用 JDBC 驅動程式時,收到的查詢資料僅會將 3 個字元 ('efbdb1efbdb2efbdb3') 以 UTF-8 顯示成 9 個位元組的字串,該字串是在 JDBC 驅動程式中從 'efbdb1efbdb2efbdb3efbdb4efbdb5efbdb6efbdb7efbdb8efbdb9efbdba' 被截斷。
如果文件已移出,也就是標示為唯讀,當編輯器開啟文件時,所有擱置中的變更都會在關閉編輯器時消失。 請確定文件已移出,再利用編輯器來開啟它。
JDBC 型錄載入器無法判斷若為非英文語言環境是否應定界綱目物件識別碼。 如果識別碼應該定界,匯入之後,開啟綱目/表格編輯器以更名綱目物件。 請參閱您的資料庫伺服器文件,以協助判定是否應定界識別碼。
- 當連接至 DB2 Universal Database for iSeries 時,您必須在「新建資料庫連線」精靈的 JDBC 驅動程式下拉欄位中,選取 AS/400 Toolbox for Java JDBC 驅動程式。 如果需要詳細資訊,請參閱「利用 DB2 Universal Database for iSeries 驅動程式建立 JDBC 連線」說明主題。
- Linux、Unix 和 Windows 的 DB2 Universal 驅動程式不支援 Java 和 SQLJ 儲存程序。
- 不支援從 DB2 第 8 版用戶端連接至 Linux、Unix 和 Windows 中的 DB2 第 7 版伺服器。
如果是其他 DB2 伺服器,請參閱在建立資料庫連線時選取 JDBC 驅動程式的線上說明。
如果您在用戶端工作站中使用的是 DB2 Universal Database 第 7 版,且連接至伺服器中的 DB2 Universal Database 第 8 版,您將無法除去 DB2 第 8 版伺服器中的 Java 儲存程序。
當您利用「新建 SQL 使用者定義函數」精靈來建立 DB2 表格 UDF 時,精靈會建議每個直欄的傳回資料之 SQL 資料類型。
如果精靈無法對映直欄的對應資料類型,或您要利用直欄之不同的傳回資料類型,請在編輯器中開啟產生的 UDF,再手動變更資料類型。
WebSphere Studio 有一個 WebSphere 品牌的 SequeLink 5.1 JDBC 用戶端版本包含在 WS_installdir/runtimes/aes_v4/lib/sljc.jar 中。 WebSphere Studio 關聯式資料庫工具無法利用這個版本的用戶端來建立 JDBC 連線。 您可能會收到以下錯誤訊息:
IWAS0126E 在嘗試建立連線 connection_name 時發現問題。原因:未建立連線,因為所選的 JAR 檔不是帶有 WebSphere 商標的 DataDirect 用戶端。請確定所選的 JAR 來自 WebSphere 安裝架構。
(如果這個 JAR 指定在「連線」精靈的 JDBC 類別位置欄位中。)您可以從 IBM 支援中心取得能夠使用關聯式資料庫工具的用戶端版本。
WebSphere Studio 5.x 版包括新版的 DataDirect Sequelink JDBC 用戶端。 您可以在 WS_installdir/runtimes/base_v5/lib/sljc.jar 保存檔中找到 DataDirect Sequelink 5.3 JDBC 用戶端。 請參閱關聯式資料庫工具文件,以瞭解如何利用 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 伺服器」窗格出現沒有直欄的表格。 如果發生這個問題,請重新啟動 WebSphere Studio。
在最初建立好連線之後,會鎖定 JDBC JAR 檔,也就是連線精靈的類別位置欄位所指定的 JAR 檔,供現行 JVM 階段作業使用。 試圖更名/移動/刪除 JAR 檔會產生下列錯誤訊息:「程序無法存取檔案,因為有另一個程序在使用檔案。」 當工作台關機時,會將檔案解開鎖定。
在開啟資料視景和/或 J2EE 視景的情況下,匯入、刪除或重新匯入 EJB JAR 檔(範例或其他),有時會在這個 EJB JAR 檔的後端資料庫下出現重複的綱目節點。 不過,這些項目是無害的,建議您關閉然後再重新啟動視景來移除重複的項目。
使用阿拉伯文語言環境時,當您將關聯式資料匯出至 UTF-8 UDB DB2 V7 資料庫時,如果發生錯誤,您可能會遇到毀損的錯誤訊息。 這個問題沒有暫行解決方法。
(C) Copyright IBM Corporation 2000, 2003. All Rights Reserved.