共用方式為


項目設定(轉換) (OracleToSQL)

[項目設定] 對話方塊的 [轉換] 頁面包含自定義 SSMA 如何將 Oracle 語法轉換為 SQL Server 語法的設定。

[轉換] 窗格可在 [項目設定] 和 [預設項目設定] 對話框中取得:

  • 若要指定所有 SSMA 項目的設定,請在 [ 工具 ] 選單上單擊 [ 預設項目設定],從 [ 移轉目標版本 ] 下拉式清單中選取需要檢視或變更設定的移轉專案類型,然後單擊左窗格底部的 [ 一般 ],然後單擊 [ 轉換]。

  • 若要指定目前項目的設定,請在 [ 工具 ] 功能表上單擊 [ 項目設定],然後按兩下左窗格底部的 [ 一般 ],然後單擊 [ 轉換]。

內建功能和預設提供的套件

術語 定義
將 COUNT 函式轉換為 COUNT_BIG COUNT如果您的函式可能會傳回大於 2,147,483,647 的值,也就是 231-1,您應該將函式轉換成COUNT_BIG

如果您選取 ,SSMA 會將所有 COUNT 的用法轉換成 COUNT_BIG

如果您選取 [否],函式會維持為 COUNT。 如果函式傳回大於 231-1 的值,SQL Server 會傳回錯誤。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/完整模式: 是的
樂觀模式:
將 SUBSTR 函式呼叫轉換為 SUBSTRING 函數調用 SSMA 可以根據參數數目,將 Oracle SUBSTR 函式呼叫轉換成 SQL Server substring 函數調用。 如果 SSMA 無法轉換 SUBSTR 函數調用,或不支持參數數目,SSMA 會將函數調用轉換成 SUBSTR 自定義 SSMA 函數調用。

如果您選擇 [是],SSMA 會將使用三個參數的函式呼叫轉換成 SUBSTR SQL Server substring。 其他 SUBSTR 函式將會轉換成呼叫自定義 SSMA 函式。

如果您選擇 ,SSMA 會將 SUBSTR 函數調用轉換為自訂 SSMA 函數呼叫。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式模式: 是的
完整模式:
轉換TO_CHAR(日期、格式)函數調用 SSMA 可以將 Oracle TO_CHAR(date, format) 轉換成來自 ssma_oracle 架構的程序。

如果您選取 使用TO_CHAR_DATE函式,SSMA 會使用英文將 TO_CHAR(date, format) 轉換成 TO_CHAR_DATE 函式。

如果您選取 使用 TO_CHAR_DATE_LS 函式(考慮 NLS),SSMA 將使用會話語言將TO_CHAR(date, format) 轉換成 TO_CHAR_DATE_LS 函式。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式模式: 使用 TO_CHAR_DATE 函式
完整模式: 使用 TO_CHAR_DATE_LS 函式(考慮 NLS 設定)
為DBMS_SQL.PARSE產生錯誤 如果您選取 [錯誤],SSMA 會在轉換 DBMS_SQL.PARSE時產生錯誤。

如果您選取 [警告],SSMA 會在轉換 DBMS_SQL.PARSE時產生警告。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:
默認/開放式/完整模式: 錯誤
在 CONCAT 函數調用中使用 ISNULL ISNULL 語句用於函式呼叫中 CONCAT ,以模擬 Oracle 行為。 這個設定有下列選項:

是的

[否]

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式模式:
完整模式: 是的
在 REPLACE 函數調用中使用 ISNULL ISNULL 語句用於函式呼叫中 REPLACE ,以模擬 Oracle 行為。 這個設定有下列選項:

是的

[否]

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式模式:
完整模式: 是的
盡可能使用原生轉換函式 如果您選取 [ ],SSMA 會盡可能將 轉換成 TO_CHAR(date, format) 原生轉換函式。

如果您選取 ,SSMA 會將 TO_CHAR(date, format) 轉換成 TO_CHAR_DATETO_CHAR_DATE_LS(這是由 TO_CHAR 轉換(日期、格式) 選項所定義)。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式模式: 是的
完整模式:

轉換訊息

術語 定義
生成問題的訊息 指定 SSMA 是否在轉換期間產生參考訊息、在 [輸出] 窗格中顯示訊息,並將其新增至已轉換的程式碼。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式模式:
完整模式:

其他選項

術語 定義
將 ROWNUM 運算式轉換成整數 當 SSMA 轉換 ROWNUM 表達式時,它會將其轉換為 TOP 子句,然後是該表達式。 下列範例顯示於 Oracle 的 ROWNUMDELETE 語句中:

DELETE FROM Table1
WHERE ROWNUM < expression and Field1 >= 2

下列範例顯示產生的 Transact-SQL:

DELETE TOP (expression-1)
FROM Table1
WHERE Field1>=2

TOP要求TOP子句的表達式必須評估為整數。 如果整數為負數,語句將會產生錯誤。

如果您選取 [是],SSMA 會將表達式轉換成整數。

如果您選取 [否],SSMA 會將所有非整數表達式標示為已轉換程式代碼中的錯誤。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/完整模式:
樂觀模式:
默認架構對應 此設定會指定 Oracle 架構如何對應至 SQL Server 架構。 這個設定提供兩個選項:

資料庫的架構: 在此模式中,Oracle 架構 sch1 預設會對應至 dbo SQL Server 資料庫中 sch1的 SQL Server 架構。

架構到架構: 在此模式中,Oracle 架構 sch1 預設會對應到連線對話框中所提供的預設 SQL Server 資料庫裡的 sch1 SQL Server 架構。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式: 資料庫架構
模擬 ORDER BY 子句中的 Oracle Null 行為 NULL 值在 SQL Server 和 Oracle 中會以不同的方式排序:

在 SQL Server 中, NULL 值是已排序列表中的最低值。 在遞增清單中, NULL 值會先出現。

在 Oracle 中, NULL 值是已排序列表中最高的值。 根據預設,NULL 值在遞增排序的列表中會出現在最後。

Oracle 具有 NULLS FIRSTNULLS LAST 子句,可讓您變更 Oracle 排序 NULL 的方式。

SSMA 可以藉由檢查ORDER BY值來模擬 Oracle NULL 行為。 然後依指定的順序依值排序 NULL ,然後依其他值排序。

如果您選取 [ ],SSMA 會以模擬 Oracle 行為的方式轉換 Oracle ORDER BY 語句。

如果您選取 [否],SSMA 將會忽略 Oracle 規則,並在遇到 NULLS FIRSTNULLS LAST 子句時產生錯誤訊息。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式模式:
完整模式: 是的
模擬 SELECT 中的數據列計數例外狀況 SELECT如果具有 INTO 子句的語句未傳回任何數據列,Oracle 就會NO_DATA_FOUND引發例外狀況。 如果語句傳回兩個或多個數據列,則會 TOO_MANY_ROWS 引發例外狀況。 如果數據列計數與其中一個不同,SQL Server 中的轉換語句不會引發任何例外狀況。

如果您選取 [],SSMA 會在每個db_error_exact_one_row_check語句之後新增對特殊SELECT程式的呼叫。 此程序模擬 NO_DATA_FOUNDTOO_MANY_ROWS 例外狀況。 這是預設值,它允許盡可能接近重現 Oracle 行為。 如果原始碼有處理這些錯誤的例外狀況處理程式,您應該一律選擇 [是 ]。 請注意,如果 SELECT 語句發生在使用者定義函數內,此模組將會轉換成預存程式,因為執行預存程式並引發例外狀況與 SQL Server 函數內容不相容。

如果您選取 [ ],則不會產生任何例外狀況。 當 SSMA 轉換使用者定義函式,而且您希望它保留在 SQL Server 中的函式時,這非常有用

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式: 是的
啟用 Fix Advisor 啟用時,SSMA 會嘗試從您在目標 T-SQL 程式代碼中所做的修改中學習,並建議您在其他位置中可能修正程式代碼,其中可以套用類似的模式。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式: 是的
產生常數表達式數據行別名 如果清單中的表達式 SELECT 遺漏別名,SSMA 可以產生常數別名(例如 expr1expr2等等),或使用表示式本身做為別名。 由於表達式可能相當冗長,而且欄位名稱長度有限,因此使用這類別名的常數基底名稱比較安全。 雖然這是更安全的選項,但有時不可能,因為產生的數據集可能有外部相依性。 在這些情況下,您可能會想要根據數據行的值表達式來命名數據行,類似於 Oracle 的行為。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式模式: 是的
完整模式:
省略擴充屬性 啟用時,SSMA 不會將擴充屬性新增至它在目標資料庫中建立的物件。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式:
轉譯錯誤碼 啟用後,如果能找到對應的映射,則目標 SQL Server 端的錯誤號碼將會被轉換為 Oracle 錯誤代碼。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/完整模式: 是的
樂觀模式:
針對類型參考使用完整類型規格 啟用時,SSMA 會遵循完整的類型規範(包括位數和精確度)來處理例程參數和傳回值。 Oracle 不允許例程參數使用數據類型,但在某些情況下可以隱含衍生,例如使用 %TYPE%ROWTYPE 屬性時。 在這種情況下,SSMA 在轉換成 SQL Server 時可以使用完整的類型規格(包括精確度和小數範圍)。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式模式: 是的
完整模式:
在字串串連中使用ISNULL 當字串串連包含 NULL 值時,Oracle 和 SQL Server 會傳回不同的結果。 Oracle 會將 NULL 值視為空字元集。 SQL Server 會傳回 NULL

如果您選取 [ ],SSMA 會將 Oracle 串連字元 (||) 取代為 SQL Server 串連字元 (+)。 SSMA 也會檢查串連兩側的表達式是否有 NULL 值。

如果您選取 [否],SSMA 會取代串連字元,但不會檢查值 NULL

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式: 是的

物件轉換

術語 定義
在非 NULL 的數據行上,使用 SET NULL 參考動作轉換外鍵 Oracle 允許建立外鍵條件約束,但由於參考數據行中不允許空值,這導致無法執行 SET NULL 的動作。 SQL Server 不允許這類外鍵組態。

如果您選取 [是],SSMA 會產生引用動作,如 Oracle 所示,但在將條件約束載入 SQL Server 之前,您必須進行手動變更。 例如,您可以選擇 NO ACTION ,而不是 SET NULL

如果您選取 [否],條件約束將會標示為錯誤。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式:
轉換子類型 SSMA 可以透過兩種方式轉換 PL/SQL 子類型:

如果您選取 [是],SSMA 會從子類型建立 SQL Server 使用者定義類型,並針對此子類型的每個變數使用它。

如果您選取 [否],SSMA 會以基礎類型取代子類型的所有來源宣告,並照常轉換結果。 在此情況下,不會在 SQL Server 中建立其他類型

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式:
轉換同義字 下列 Oracle 物件的同義字可以移轉至 SQL Server:

數據表和對象數據表

視圖和物件視圖

預存程式和函式

具象化視圖

下列 Oracle 物件的同義詞 可以用對這些物件的直接引用來取代:

序列

套件

Java 類別架構物件

使用者定義物件類型

無法移轉其他同義詞。 SSMA 會為同義字及所有使用該同義字的參考產生錯誤訊息。

如果您選取 [是],SSMA 會根據先前的清單建立 SQL Server 同義字和直接對象參考。

如果您選取 [否],SSMA 將會針對此處所列的所有同義字建立直接對象參考。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式: 是的
本機模組轉換 定義 Oracle 巢狀結構子程式的類別轉換(在獨立預存程式或函式中宣告)。

如果您選擇「內嵌」,巢狀子程序呼叫將會被其本體取代。

如果您選取 [預存程式],巢狀子程式將會轉換成 SQL Server 預存程式,而且會在此過程調用上取代其呼叫。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式: 內嵌

記錄轉換

術語 定義
將記錄轉換成個別變數的清單 SSMA 可以將 Oracle 記錄轉換成個別變數,並轉換成具有特定結構的 XML 變數。

如果您選取 [ ],SSMA 會盡可能將記錄轉換成個別變數的清單。

如果您選取 [否],SSMA 會將記錄轉換成具有特定結構的 XML 變數。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式: 是的
在將 SELECT...INTO 轉換為記錄變數時使用 SELECT...FOR XML 指定當您選取至記錄變數時,是否要產生 XML 結果集。

如果您選取 [ ],SELECT 語句會傳回 XML。

如果您選取 [否],SELECT 語句會傳回結果集。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式:

RETURNING 子句轉換

術語 定義
將 DELETE 語句中的 RETURNING 子句轉換為 OUTPUT Oracle 提供 RETURNING 子句作為立即取得已刪除值的方式。 SQL Server 會使用 OUTPUT 子句來提供該功能。

如果您選取 [],SSMA 會將 語句RETURNING中的 DELETE 子句轉換成 OUTPUT 子句。 因為數據表上的觸發程式可以變更值,所以傳回的值在 SQL Server 中可能與 Oracle 中的值不同。

如果您選取,SSMA 會在SELECT語句之前產生DELETE語句,以擷取回傳的值。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式: 是的
將 INSERT 語句中的 RETURNING 子句轉換為 OUTPUT Oracle 提供 RETURNING 子句作為立即取得插入值的方法。 SQL Server 會使用 OUTPUT 子句來提供該功能。

如果您選取 [是],SSMA 會將 語句RETURNING中的 INSERT 子句轉換成 OUTPUT 。 因為數據表上的觸發程式可以變更值,所以傳回的值在 SQL Server 中可能與 Oracle 中的值不同。

如果您選取 [否],SSMA 會插入並選取參考數據表中的值,以模擬 Oracle 功能。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式: 是的
將 UPDATE 語句中的 RETURNING 子句轉換為 OUTPUT Oracle 提供 RETURNING 子句作為立即取得更新值的方式。 SQL Server 會使用 OUTPUT 子句來提供該功能。

如果您選取 [],SSMA 會將 語句RETURNING中的 UPDATE 子句轉換成 OUTPUT 子句。 因為數據表上的觸發程式可以變更值,所以傳回的值在 SQL Server 中可能與 Oracle 中的值不同。

如果您選取No,SSMA 將在UPDATE語句之後產生 SELECT 語句,以擷取返回值。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式: 是的

ROWID 的產生

術語 定義
產生 ROWID 資料行 當 SSMA 在 SQL Server 中建立資料表時,它可以建立 ROWID 數據行。 當資料被遷移時,每個資料列會透過UNIQUEIDENTIFIER函式產生新的newid()值。

如果您選取 ,則會在所有數據表上建立 ROWID 數據列,並且 SQL Server 會產生 GUID 作為插入值。 如果您計劃使用 SSMA 測試程式,請始終選擇

如果您選取 [否],ROWID 數據行就不會新增至數據表。

為包含觸發器的數據表新增 ROWID 資料行 為包含觸發器的數據表新增 ROWID

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/樂觀模式: 為具有觸發器的表新增 ROWID 資料行

完整模式: 是的
在 ROWID 資料行上產生唯一索引 指定 SSMA 是否在 ROWID 生成的欄位上產生唯一索引欄位。 如果選項設定為 「YES」,就會產生唯一索引,而且如果它設定為 「NO」,則不會在數據行上 ROWID 產生唯一索引。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式: 是的

時序與身份識別轉換

術語 定義
將身分識別轉換為 Oracle 提供多個身分識別數據行的組態選項。 SQL Server 中的身分識別功能不支援其中一些選項。

保留這些選項的方法,是將身分識別轉換成序列。

如果您選取 [順序],Oracle 身分識別數據行將不再轉換成 SQL 身分識別數據行。 相反地,將會建立序列,並用來產生數據行的預設值。

如果您選取 [ 身分識別],Oracle 身分識別數據行將會轉換成 SQL 身分識別數據行。 不支援的選項將不會轉換。

如果您選取 [最佳配適],SSMA 會根據 Oracle 識別數據行的組態,決定最適合的轉換方法(身分識別或序列)。
轉換序列產生器 在 Oracle 中,您可以使用序列來產生唯一識別碼。

SSMA 可以將序列轉換成以下內容。

使用 SQL Server 序列產生器。

使用 SSMA 序列產生器。

使用欄位識別碼。

預設選項是使用 SQL Server 序列產生器。 不過,SQL Server 不支援取得當前序列值(例如 Oracle 序列CURRVAL方法的值)。 如需移轉 Oracle 順序 CURRVAL 方法的指引,請參閱 SSMA 小組部落格網站。

SSMA 也提供將 Oracle 序列轉換成 SSMA 序列模擬器的選項。 當您在 2012 年之前轉換為 SQL Server 時,這是預設選項

最後,您也可以將指派給數據表中數據行的序列轉換成 SQL Server 識別值。 您必須在 [Oracle 資料表 ] 索引標籤上指定序列與識別資料行之間的對應
將 CURRVAL 轉換至非觸發程式中 只有在 [轉換順序產生器 ] 設定為 [使用數據行識別] 時,才會顯示。 因為 Oracle 序列是與資料表不同的物件,因此許多使用時序的數據表都會使用觸發程式來產生並插入新的序列值。 SSMA 批註這些語句,或在批註產生錯誤時將它們標示為錯誤。

如果您選取 ,SSMA 會以警告標記轉換序列 CURRVAL 上對外部觸發器的所有參考。

如果您選取 [否],SSMA 將會標示已轉換序列 CURRVAL 上對外部觸發程式的所有參考,並顯示錯誤。

語句轉換

術語 定義
MERGE 語句的轉換 如果您選取 [使用 INSERT、UPDATE、DELETE 語句],SSMA 會將 MERGE 語句INSERT轉換成 、 UPDATEDELETE 語句。

如果您選取 [使用 MERGE 語句],SSMA 會將 MERGE 語句 MERGE 轉換成 SQL Server 中的 語句。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式: 使用 MERGE 語句
將呼叫轉換為使用預設自變數的子程式 SQL Server 函式不支援在函數調用中省略參數。 此外,SQL Server 函式和程式不支援表示式做為預設參數值。

如果您選取 [是 ],且函式呼叫省略參數,SSMA 會將關鍵詞 預設值 插入函式中,並以正確的位置呼叫。 然後,它會將呼叫標示為警告。

如果您選取 [否],SSMA 會將函式呼叫標示為錯誤。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式: 是的
將 FORALL 語句轉換為 WHILE 語句 定義 SSMA 如何處理 FORALL PL/SQL 集合元素上的迴圈。

如果您選取 ,SSMA 會建立一個迴圈 WHILE,以逐一擷取集合元素。

如果您選取 [否],SSMA 會使用 nodes() 方法從集合產生數據列集,並將其當做單一數據表使用。 這更有效率,但使輸出程式代碼的可讀性降低。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式模式:
完整模式: 是的
將函數調用轉換為過程調用 某些 Oracle 函式會定義為自發交易,或包含在 SQL Server 中無效的語句。 在這些情況下,SSMA 會建立一個程序,以及一個用於包裝該程序的函式。 轉換的函式會呼叫實作程式。

SSMA 可以將對包裝函式的呼叫轉換成對程序的呼叫。 這會建立更容易閱讀的程序代碼,並可改善效能。 不過,上下文不一定會允許這樣做;例如,您無法在 SELECT 清單中使用程序呼叫取代函式呼叫。 SSMA 有幾個選項可涵蓋常見案例:

如果您選取 [永遠],SSMA 會嘗試將包裝函式呼叫轉換成過程調用。 如果目前的內容不允許此轉換,就會產生錯誤訊息。 如此一來,產生的程式代碼中就不會留下任何函數調用。

如果您選取 可能,SSMA 只有當函式擁有輸出參數時,才會轉換為過程調用。 無法移動時,會移除參數的輸出屬性。 在其他所有情況下,SSMA 都會離開函數調用。

如果您選取 永不,SSMA 將所有函數呼叫保留為函數呼叫。 有時候這個選擇可能是因為效能原因而無法接受的。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式: 可能的話
轉換 LOCK TABLE 語句 SSMA 可以將許多 LOCK TABLE 語句轉換成數據表提示。 SSMA 無法轉換任何 LOCK TABLE 包含 PARTITIONSUBPARTITION@dblinkNOWAIT 子句的語句,而且會將這類語句標示為轉換錯誤訊息。

如果您選取 [是],SSMA 會將支持的 LOCK TABLE 語句轉換成數據表提示。

如果您選取 [否],SSMA 會以轉換錯誤訊息標示所有 LOCK TABLE 語句。

下表顯示 SSMA 如何轉換 Oracle 鎖定模式:

Oracle 鎖定模式

ROW SHARE
ROW EXCLUSIVE
SHARE UPDATE = ROW SHARE
SHARE
SHARE
EXCLUSIVE

SQL Server 數據表提示

ROWLOCK, HOLDLOCK
ROWLOCK, XLOCK, HOLDLOCK
ROWLOCK, HOLDLOCK
TABLOCK, HOLDLOCK
TABLOCK, XLOCK, HOLDLOCK
TABLOCKX, HOLDLOCK

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式: 是的
將 OPEN-FOR 語句轉換為 REF CURSOR OUT 參數 在 Oracle 中,OPEN .. FOR語句可用於將結果集傳回至子程序的OUT參數,其類型為REF CURSOR。 在 SQL Server 中,預存程式會直接傳回 語句的結果 SELECT

SSMA 可以將許多 OPEN .. FOR 語句轉換成 SELECT 語句。

如果您選取 [是],SSMA 會將 OPEN .. FOR 語句轉換成 語句 SELECT ,以將結果集傳回給用戶端。

如果您選取 [否],SSMA 會在轉換的程式代碼和 [輸出] 窗格中產生錯誤訊息。

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式: 是的
轉換交易處理語句 SSMA 可以轉換 Oracle 事務處理語句:

如果您選取 [是],SSMA 會將 Oracle 事務處理語句轉換成 SQL Server 語句。

如果您選取 [否],SSMA 會將事務處理語句標示為轉換錯誤。

注意: Oracle 會以隱含方式開啟交易。 若要在 SQL Server 上模擬此行為,您必須在您希望交易開始的位置手動新增 BEGIN TRANSACTION 語句。 或者,您可以在會話的開頭執行 SET IMPLICIT_TRANSACTIONS ON 命令。 在使用自發交易轉換子程式時,SSMA 會自動新增 SET IMPLICIT_TRANSACTIONS ON

當您在 [模式] 方塊中選取轉換模式時,SSMA 會套用下列設定:

默認/開放式/完整模式: 是的

另請參閱

使用者介面參考 (OracleToSQL)