共用方式為


Oracle 發行者的資料類型對應

Oracle 資料類型與 Microsoft SQL Server 資料類型並非始終完全相符。 若有可能,將在發行 Oracle 資料表時自動選取相符的資料類型。 如果單一資料類型對應不清楚,將提供替代的資料類型對應。 如需有關如何選取替代對應的詳細資訊,請參閱本主題稍後的「指定替代資料類型對應」一節。

下表顯示了將資料從「Oracle 發行者」移至「SQL Server 散發者」時,資料類型在 Oracle 與 SQL Server 之間的預設對應方式。 「替代方案」一欄會指示替代對應是否可用。

Oracle 資料類型

SQL Server 資料類型

替代方案

BFILE

VARBINARY(MAX)

BLOB

VARBINARY(MAX)

CHAR([1-2000])

CHAR([1-2000])

CLOB

VARCHAR(MAX)

DATE

DATETIME

FLOAT

FLOAT

FLOAT([1-53])

FLOAT([1-53])

FLOAT([54-126])

FLOAT

INT

NUMERIC(38)

INTERVAL

DATETIME

LONG

VARCHAR(MAX)

LONG RAW

IMAGE

NCHAR([1-1000])

NCHAR([1-1000])

NCLOB

NVARCHAR(MAX)

NUMBER

FLOAT

NUMBER([1-38])

NUMERIC([1-38])

NUMBER([0-38],[1-38])

NUMERIC([0-38],[1-38])

NVARCHAR2([1-2000])

NVARCHAR([1-2000])

RAW([1-2000])

VARBINARY([1-2000])

REAL

FLOAT

ROWID

CHAR(18)

TIMESTAMP

DATETIME

TIMESTAMP(0-7)

DATETIME

TIMESTAMP(8-9)

DATETIME

TIMESTAMP(0-7) WITH TIME ZONE

VARCHAR(37)

TIMESTAMP(8-9) WITH TIME ZONE

VARCHAR(37)

TIMESTAMP(0-7) WITH LOCAL TIME ZONE

VARCHAR(37)

TIMESTAMP(8-9) WITH LOCAL TIME ZONE

VARCHAR(37)

UROWID

CHAR(18)

VARCHAR2([1-4000])

VARCHAR([1-4000])

資料類型對應的考量

從 Oracle 資料庫複寫資料時,注意下列資料類型問題。

不支援的資料類型

下列資料類型不受支援;無法複寫具有這些類型的資料行:

  • 物件類型

  • XML 類型

  • Varrays

  • 巢狀資料表

  • 使用 REF 的資料行

DATE 資料類型

SQL Server 的日期範圍是從 1753 A.D. 到 9999 A.D.,而 Oracle 的日期範圍則是從 4712 B.C. 到 4712 A.D。 如果 DATE 類型的資料行包含的值超出 SQL Server 的範圍,請為此資料行選取替代資料類型,也就是 VARCHAR(19)。

FLOAT 和 NUMBER 類型

在對應 FLOAT 和 NUMBER 資料類型期間指定的小數位數與有效位數,取決於為使用 Oracle 資料庫中資料類型的資料行指定的小數位數與有效位數。 位數 (Precision) 是指數字中總共的位數。 小數位數 (Scale) 則是指數字中小數點右方的位數。 例如 123.45 的位數是 5,小數位數是 2。

Oracle 允許將數字定義為小數位數大於有效位數,例如 NUMBER(4,5),但 SQL Server 需要有效位數等於或大於小數位數。 若要確定沒有資料截斷,如果「Oracle 發行者」端的小數位數大於有效位數,則在對應資料類型時要將有效位數設定為等於小數位數:NUMBER(4,5) 將對應為 NUMERIC(5,5)。

[!附註]

如果您沒有為 NUMBER 指定小數位數和有效位數,則 SQL Server 預設為使用最大小數位數 (8) 和有效位數 (38)。 建議您在 Oracle 中設定特定的小數位數和有效位數,以便在複寫資料時獲得更好的儲存容量和效能。

大型物件類型

Oracle 最多支援 4 GB,而 SQL Server 最多支援 2 GB。 超過 2 GB 的複寫資料將被截斷。

如果 Oracle 資料表包含 BFILE 資料行,該資料行的資料將儲存在檔案系統中。 複寫管理使用者帳戶必須被授與目錄存取權限。在該目錄中,資料使用下列語法儲存:

GRANT READ ON DIRECTORY <directory_name> TO <replication_administrative_user_schema>

如需大型物件類型的詳細資訊,請參閱<Oracle 發行者的設計考量與限制>中的「大型物件的考量」一節。

指定替代資料類型對應

通常適合使用預設的資料類型對應,但對於許多 Oracle 資料類型,您可以從一組替代對應中選取資料類型對應,而不使用預設對應。 可透過兩種方式指定替代對應:

  • 使用預存程序或「新增發行集精靈」覆寫各發行項的預設值。

  • 使用預存程序對所有未來發行項的預設值進行全域變更 (不變更現有發行項的預設值)。

若要指定替代資料類型對應