9. SSMAの対応DB
移行元
Oracle 9i-12c
MS-Access
MySQL
DB2
Sybase ASE
移行先
SQL Server 2008 – 2016 / 2017 Preview ( Windows / Linux)
Azure SQL Database
Azure SQL Data Warehouse ※Oracleのみ
8
10. SSMA for Oracle の構成例 9
Oracle DataBase SSMA for Oracle
Oracle Net Client
SQL Server
SSMA ExtentionPack for Oracle
Oracle Data Provider
同居可能
移行元DB ②移行先DB①SSMA
11. SSMA for Oracle の動作環境 10
SSMA 7.6 (2017/10/19 最新)の動作環境は以下の通り
対象 OS ソフトウェア 備考
①SSMA 64 Bit Windows SSMA for Oracle .Net Framework 4.5.2 以上が必要
Oracle Net Client 移行元Oracleのバージョン用以降のもの
②移行先 Windows SSMA for Oracle Extention
Pack
.Net Framework 4.5.2 以上が必要
SQL Server 任意のバージョン
Oracle Data Provider 移行元Oracleのバージョン用以降のもの
.NET / oledb 用どちらでも可
74. NULLの扱い①
SQL Server では、空文字’’ と NULLは明確に区別されますが、
Oracleでは区別されないため、出力結果が異なります。
例)SELECT * FROM tbl1 WHERE col1 is null
→ Oracle NULL と空文字を出力
SQL Server NULLのみを出力
73
75. NULLの扱い②
NULL行を含む列でソートを行うと、SQL ServerとOracleでは出力順序が
異なります。
SQL Server → 最初に出力(最小値)
Oracle → 最後に出力(最大値)
SQLの操作でNULLの出力順序を操作することもできます。
SQL Sever : NULLを最後に出力
SELECT ~ FROM 表 ORDER BY
CASE WHEN 列 IS NULL THEN 1 ELSE 0 END, 列
Oracle : NULLを最初に出力
SELECT ~ FROM 表 ORDER BY 列 NULLS FIRST (NULLS LAST)
74
76. 検索結果の出力行数制限
行の検索結果を制限を行う場合、以下の違いがあります。
Oracle 11g
select rownum, * from tbl1 where rownum <= 10 order by 列
SQL Server
SELECT TOP 10 * from tbl1 order by 列
Oracle12c
SELECT * from tbl1 FETCH FIRST 10 order by 列
75
77. 照合順序の違い
SQL Serverはインスタンス作成時に言語の照合順序を設定します。
Oracleは基本的にはバイナリ順になります。
照合順序を設定する際に、言語ソート機能により、照合順序を決めます。
例)
SQLで設定
SELECT ~ ORDER BY NLSSORT(列, ’NLS_SORT=japanese’);
セッション全体で設定
ALTER SESSION SET NLS_SORT=japanese;
SELECT ~ ORDER BY 列
76