Table 7-2 資料庫功能
1 DB2 原始支援以 Java 撰寫的預存程序或函數。 若要藉由使用原始 SQL 程序語言來寫入程序,請在資料庫伺服器上安裝 C 編譯器。
2 Informix 身份欄關鍵字為 SERIAL8。
3 Informix 預存程序無法傳回值。
4 MySQL 身份欄關鍵字為 AUTO_INCREMENT。
5 您可以使用 Postgres 序列物件將預設值提供給主索引鍵欄,從而有效地模擬身份欄。
Postgres 具有稱為規則的原始建構元。 這個建構元可用來有效地模擬觸發和取代觸發。 它還支援使用以各種程序設計語言撰寫的觸發或取代觸發。
下表列出資料庫用來取回目前日期和時間的 SQL 陳述式:
Table 7-3 時戳陳述式
下表列出用於呼叫預存程序或函數的 SQL 語法。 對於在內嵌式 SQL 陳述式中格式化程序和函數呼叫而言,這會非常有用。
Table 7-4 呼叫預存程序或函數
1 Oracle 的 JDBC 實作不支援做為字串呼叫函數。
下表依資料庫列出外部結合運算子。
Table 7-5 外部結合運算子
|
資料庫 |
左外部結合運算子 |
ANSI 相容 |
|---|---|---|
|
IBM DB2 UDB |
LEFT OUTER JOIN |
是 |
|
Informix IDS |
LEFT OUTER JOIN |
是 |
|
MSSQL |
*= |
否 |
|
MySQL |
LEFT OUTER JOIN |
是 |
|
Oracle |
(+) |
否 |
|
PostgreSQL |
LEFT OUTER JOIN |
是 |
|
Sybase ASE |
*= |
否 |
NOTE:10g 版的 Oracle 支援 ANSI 相容的左外部結合運算子 LEFT OUTER JOIN。
Table 7-7 受支援的異動隔離層級
|
資料庫 |
無 |
讀取未認可 |
讀取認可 |
可重複讀取 |
可序列化 |
URL |
|---|---|---|---|---|---|---|
|
IBM DB2 UDB |
0 |
X |
X1 |
X |
X |
|
|
MySQL (InnoDB 表格類型) |
0 |
X |
X |
X1 |
X |
|
|
Oracle |
0 |
0 |
X1 |
0 |
X |
|
|
PostgreSQL |
0 |
02 |
X1 |
02 |
X |
1 這是此資料庫的預設隔離層級。 2 可以設定,但是別名為受支援的隔離層級。
下表識別受支援資料庫的認可關鍵字:
Table 7-8 認可關鍵字
|
資料庫 |
認可關鍵字 |
|---|---|
|
IBM DB2 UDB |
COMMIT |
|
Informix IDS |
COMMIT WORK1 |
|
MSSQL |
GO |
|
MySQL |
COMMIT |
|
Oracle |
COMMIT |
|
PostgreSQL |
COMMIT |
|
Sybase ASE |
GO |
1 適用於記錄和 ANSI 相容的資料庫。 非記錄資料庫不支援異動。
下表列出此資料庫的內容。
Table 7-9 IBM DB2 UDB 的內容
|
內容 |
值 |
|---|---|
|
目前時戳陳述式 |
SELECT (CURRENT TIMESTAMP) FROM SYSIBM.SYSDUMMY1 FETCH FIRST 1 ROW ONLY |
|
預存程序/函數呼叫語法 |
{call 綱要名稱.程序名稱(參數清單)} |
|
區分大小寫? |
否 |
|
認可關鍵字 |
COMMIT |
|
左外部結合運算子 |
LEFT OUTER JOIN |
下表列出 Driver for JDBC 在執行時期以隱含方式設定的資料庫相容性參數。 請勿明確地置換這些設定。
Table 7-10 以動態方式設定的 IBM DB2 Universal Database 設定
|
顯示名稱 |
標籤名稱 |
值 |
|---|---|---|
|
目前時戳陳述式: |
current-timestamp-stmt |
SELECT (CURRENT TIMESTAMP) FROM SYSIBM.SYSDUMMY1 FETCH FIRST 1 ROW ONLY |
|
「時戳轉譯程式」類別: |
time-translator-class |
com.novell.nds.dirxml.driver.jdbc.db.DB2Timestamp |
下表列出此資料庫的內容。
Table 7-11 Informix Dynamic Server 的設定
|
內容 |
值 |
|---|---|
|
目前時戳陳述式 |
SELECT FIRST 1 (CURRENT YEAR TO FRACTION(5)) FROM INFORMIX.SYSTABLES |
|
預存程序/函數呼叫語法 |
EXECUTE [PROCEDURE | FUNCTION] 綱要名稱.程序名稱(參數清單) |
|
區分大小寫? |
否 |
|
認可關鍵字 |
COMMIT WORK1 |
|
左外部結合運算子 |
LEFT OUTER JOIN |
1 適用於記錄和 ANSI 相容的資料庫。 非記錄資料庫不支援異動。
下表列出 Driver for JDBC 在執行時期以隱含方式設定的資料庫相容性參數。 請勿明確地覆寫這些設定。
Table 7-12 以動態方式設定的 Informix Dynamic Server 設定
|
顯示名稱 |
標籤名稱 |
值 |
|---|---|---|
|
目前時戳陳述式: |
current-timestamp-stmt |
SELECT FIRST 1 (CURRENT YEAR TO FRACTION(5)) FROM INFORMIX.SYSTABLES |
下表列出此資料庫的內容:
Table 7-13 Microsoft SQL Server 的設定
|
內容 |
值 |
|---|---|
|
目前時戳陳述式 |
SELECT (CURRENT_TIMESTAMP) |
|
預存程序/函數呼叫語法 |
EXECUTE 綱要名稱.程序名稱(參數清單) |
|
區分大小寫? |
否 |
|
認可關鍵字 |
GO |
|
左外部結合運算子 |
*= |
下表列出 Driver for JDBC 在執行時期以隱含方式設定的資料庫相容性參數。 請勿明確地覆寫這些設定。
下表列出此資料庫的內容。
Table 7-15 MySQL 的設定
|
內容 |
值 |
|---|---|
|
目前時戳陳述式 |
SELECT (CURRENT_TIMESTAMP) |
|
預存程序/函數呼叫語法 |
(NA) |
|
區分大小寫? |
是 |
|
認可關鍵字 |
COMMIT |
|
左外部結合運算子 |
LEFT OUTER JOIN |
下表列出此資料庫在執行時期以動態方式設定的資料庫相容性參數。
Table 7-16 以動態方式設定的 MySQL 設定
|
顯示名稱 |
標籤名稱 |
值 |
|---|---|---|
|
支援在中繼資料取回時使用綱要? |
supports-schemas-in-metadata-retrieval |
false |
下表列出此資料庫的內容:
Table 7-17 Oracle 的設定
|
內容 |
值 |
|---|---|
|
目前時戳陳述式 |
SELECT (SYSDATE) FROM SYS.DUAL |
|
預存程序/函數呼叫語法 |
CALL 綱要名稱.程序名稱(參數清單) |
|
區分大小寫? |
否 |
|
認可關鍵字 |
COMMIT |
|
左外部結合運算子 |
(+) |
下表列出 Driver for JDBC 在執行時期以隱含方式設定的資料庫相容性參數。 請勿明確地覆寫這些設定。
Table 7-18 以動態方式設定的 Oracle 設定
|
顯示名稱 |
標籤名稱 |
值 |
|---|---|---|
|
左外部結合運算子 |
left-outer-join-operator |
(+) |
|
排除過濾器運算式 |
exclude-table-filter |
BIN\$.{22}==\$0 |
|
鎖定陳述式產生器類別 |
lock-generator-class |
com.novell.nds.dirxml.driver.jdbc.db.lock.OraLockGenerator |
NOTE:預設排除過濾器會從 Oracle 10g 中可見之同步化綱要略去的表格加以省略。
下表列出此資料庫的內容:
Table 7-19 PostgreSQL 的設定
|
內容 |
值 |
|---|---|
|
目前時戳陳述式 |
SELECT (CURRENT_TIMESTAMP) |
|
預存程序/函數呼叫語法 |
SELECT 綱要名稱.程序名稱(參數清單) |
|
區分大小寫? |
否 |
|
認可關鍵字 |
COMMIT |
|
左外部結合運算子 |
LEFT OUTER JOIN |
下表列出此資料庫的內容:
Table 7-20 Sybase ASE 的設定
|
內容 |
值 |
|---|---|
|
目前時戳陳述式 |
SELECT GETDATE() |
|
預存程序/函數呼叫語法 |
EXECUTE 綱要名稱.程序名稱(參數清單) |
|
區分大小寫? |
是 |
|
認可關鍵字 |
GO |
|
左外部結合運算子 |
*= |
下表列出 Driver for JDBC 在執行時期以隱含方式設定的資料庫相容性參數。 請勿明確地覆寫這些設定。
Table 7-21 以動態方式設定的 Sybase ASE 設定
|
顯示名稱 |
標籤名稱 |
值 |
|---|---|---|
|
目前時戳陳述式 |
current-timestamp-stmt |
SELECT GETDATE() |
|
左外部結合運算子 |
left-outer-join-operator |
*= |
|
「時戳轉譯程式」類別 |
time-translator-class |
com.novell.nds.dirxml.driver.jdbc.db.SybaseTimestamp |
若要確保二進位值 ANSI 相容的填補和截短行為,請確定二進位欄類型 (而不是 IMAGE) 符合下列準則:
如果它們限制為 NULL,則對 eDirectory 有效之行尾的零會截短。 如果二進位欄超出它們各自的 eDirectory 屬性大小,則額外的 0 會附加至該值。
建議的解決方案是在同步化二進位值時只使用 IMAGE 資料類型。