SlideShare a Scribd company logo
データベースマイグレーション
について
藤井 元雄
はじめに
この資料は個人の見解に基づくものであり、
所属する組織の公式の見解ではありませんので
ご了承ください。
1
自己紹介
名前 :藤井 元雄
現在 :大阪在住。インフラエンジニアとして客先常駐し、
Windows,Linux,Unixなどのサーバー構築をしています
過去 :富士通、IBMの運用・保守・開発
オープン系のシステム開発
パッケージソフトのプリセールス・ヘルプデスク
客先常駐でインフラエンジニアとして構築・保守・
製品検証その他・・・・
2
アジェンダ
 データベースマイグレーションツール
 SQLの動作の違い
3
データベースマイグレーションツール
4
データベース・マイグレーションとは
 データベースの定義やデータをDBの新バージョンや別のDB
製品に移行する
 移行先データベースに適合するようにミドルウェアやアプリ
ケーション、ツール等の変更を行う
5
データベース・マイグレーションツー
ルとは
 データベースのオブジェクト(テーブル、ファンクション等)、および
データを移行先DBMSに合わせて変換して移行するためのツールです。
 SQL Server、Oracleについては以下のツールが無償提供されています。
 その他
6
対象 ツール名 開発元
SQLServerへ移行 SQL Server Migration Assistant(SSMA) Microsoft
Oracleへ移行 SQL Developer Oracle
対象 ツール名 開発元
My SQLへ移行 MySQL Workbench Oracle,
MySQL Community
OracleからSQL Serverへの
マイグレーション
7
SQL Server Migration Assistant
 SSMAはマイクロソフトが無償で提供している、他のDBからSQL Serverへマイグレーショ
ンを行うツールです。
 以下のステップに分けてマイグレーションできます
 移行性評価(レポートの作成)
 スキーママイグレーション
 データマイグレーション
 SQL Serverにないファンクションは、SSMA独自のファンクションで代替することができま
す。(ssma_oracle.ファンクション名 の関数)
 移行元のデータベースによりに、インストールするモジュールが異なります。
(Oracle用、DB2用、MS-Access用など)
8
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のみ
9
SSMA for Oracle の構成例 10
Oracle DataBase SSMA for Oracle
Oracle Net Client
SQL Server
SSMA ExtentionPack for Oracle
Oracle Data Provider
同居可能
移行元DB ②移行先DB①SSMA
SSMA for Oracle の動作環境 11
 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 用どちらでも可
SSMA for Oracleのマイグレーション
対象
 対象
表、索引、ビュー、
プロシージャ、ファンクション
トリガー、シーケンス、シノニム
等のデータベースオブジェクト
表のデータ
 対象外
ユーザー、ロール(セキュリティ)
データベース、データベースファイル
12
SSMAの入手
 マイクロソフトのダウンロードセンターから入手できます。
ユーザー登録は不要です。
 SSMA for OracleとSSMA for Oracle Extention Pack の2つを同時にダ
ウンロードできます。
13
Downloadをクリックするとファイル選択画面が
表示されるので、すべてチェックします。
インストール手順①
 ①SSMA
 SSMA for Oracle.7.6.0.msi を実行してインストールします
→インストーラーの設定に従います
インストール完了後、デスクトップに右のアイコンが作成されます
 Oracle NET Client をインストールします。
→インストーラーの指示に従ってインストールします。
※Oracle NET Clientは USのページからのみダウンロードできます。
(日本語のDBダウンロードページで 「See All」をクリックする
とUSのページに移動します)
14
インストール手順②-1
 ②移行先DB
 SQL Serverをインストールします(インスタンス作成)。
 SSMA for Oracle Extension Pack.7.6.0.msi を実行します。
 途中、以下のOracle Data Providerのダウンロード画面に誘導するボタンが
表示されます。別途入手できますので、無視しても構いません。
15
インストール手順②-2
 SSMA用データベース作成のため、移行先インスタンスの接続情報を入力しま
す。
 接続ユーザーには、sysadmin権限が必要です。
16
接続先インスタンス選択 接続パラメータ入力
パスワード(Windows認証のみ)
インストール手順②-3
 データベース作成の確認をされますので、Nextクリックで確定します。
 インストールが完了すると、上記で接続したインスタンスに、2つのデータ
ベースが作成されます:
ssmatesterdb → マイグレーションテスト用DB
sysdb → SSMAの追加ファンクション等のスキーマ
17
インストール手順②-3
 sqmcmd、SSMSで以下のSQLを実行し、インスタンスでCLR
(.NET Frameworkのランタイム)を使用可能にします。
 Oracle Data Providerをインストールする
→インストーラー版とXCOPY版がありますので、付属のドキュメントを
参考にインストールします
18
sp_configure ‘clr enabled’, 1
GO
RECONFIGURE
GO
XCOPY版は以下をコマンドプロンプトで実行します。
> cd /d (インストールファイル展開フォルダ)
> install_odpm.bat (インストール先フォルダ) [ x86 | x64 | both ]
SQL Server(マイグレーション先)
の準備
 SQL Serverでマイグレーション先のデータベースを作成します。
→移行元のデータベース名と違っても問題ありません。
※既存のインスタンス、データベースでも使用可能
 TCP/IPで接続できるよう設定してください。
19
SSMAの起動
 デスクトップのSSMAのアイコンから起動するか、
スタートメニューからSSMAを起動します。
20
SSMAの画面 21
メニュー
Oracle
オブジェクト
のエリア
(移行元)
SQL Server
オブジェクト
のエリア
(移行先)
メッセージ
エリア
(起動時は未表示)
マイグレーションの手順
①プロジェクトの作成(開く)
②Oracle接続
③マイグレーションレポート作成
④SQL Server接続
⑤スキーマ変換
⑥データマイグレーション
22
① ② ③④ ⑤
大きな流れとしては、画面上部のメニューを左から順番にたどっていきます。
⑥
プロジェクト作成①
 マイグレーションを行うためには、まずプロジェクトを作成します。
 プロジェクト名
 プロジェクトファイル保存先
 マイグレーションターゲットのSQL Serverバージョンを選択します。
23
プロジェクトの作成②
 プロジェクト作成後、プロジェクトの設定します。(いつでも可能です)
 「Tools」-「ProjectSettings」で画面を表示します。
 設定可能なもの
 全般(General)
 コンバート方法(Convert)
 マイグレーション(Migration)
 Oracleシステムオブジェクト(Loading System Object)
 データの同期(Synchronization)
 GUI(GUI)
 データタイプのマッピング(Type Mapping)
24
ProjectSettingsについて①
 コンバート方法(Convert)では、以下のような設定ができます。
例以外にも様々な設定ができます。

25
大項目 各項目
ビルトイン関数 SUBSTR, CONVERT等いくつかの関数の変換方法
変換メッセージの生成 変換情報の生成有無。デーフォルトはErrorとWarningのみ
オブジェクトの変換 外部キーのNULL、subtype,シノニムの変換
レコードの変換 SELECT結果の変数への置き換え
RETURNNING句の変換 RETTURNING句を変換するステートメントの設定
ROWID列の生成 表にROWID列を追加するか。デフォルトはトリガーのある表のみ追加
シーケンスの変換 SQL Serverの機能、SSMAの機能、表のいずれを使用するか
ステートメントの変換 MERGE文、DEFAULTキーワード等の変換
その他 スキーマの移行先(データベース内のスキーマor スキーマのDB作成)
ProjectSettingsについて②
 マイグレーション(Migration)では、移行時の動作の設定ができます。
マイグレーションする場所(クライアント or Server)
マイグレーションの処理単位、トリガーやテーブルロック等の動作 等
26
ProjectSettingsについて③
 Oracleシステムオブジェクト(Loading System Object)
マイグレーションするOracleのシステムオブジェクトを選択できます。
これより、ssma_oracle.~のプロシージャにコンバートされます。
27
ProjectSettingsについて④
 データタイプのマッピング
テーブルや関数で使用するデータタイプの変換ルールを設定できます。
追加、削除などもできます。
28
Oracle接続
 Oracleを接続します。下記のいずれかのモードを選択します。
 Provider : Oracle Client / OLEDB / ODBC
 Mode : Standard mode /TNSNAMES Connect / Connect String
 接続に必要な情報を入力し、「Connect」をクリックします。
 Oracle接続に成功すると、SSMAにOracleのスキーマ情報が保存されます。
29
レポート作成①
 スキーママイグレーションのレポートを作成します。
 マイグレーションのツールでの変換結果を評価します。
 レポートを作成するには、レポート作成対象オブジェクトをチェックした
後、「Schemas」 または 「Syanonyms」を選択後、
「Create Report」をクリックします。
30
レポート作成②
 レポートが完成すると、Webブラウザでレポートが表示されます。
 レポートはプロジェクトファイルのフォルダに「report¥report(作成日時)」フォルダが作成されます。
 レポートはフォルダ全体をコピーして他のPCで確認できます。
トップページ : report¥report(作成日時)¥mainindex.html
31
レポート作成③
 レポートで確認できるもの
 マイグレーション対象数
 エラー、警告の数
 エラー、警告の割合
 マイグレーションしたプロシージャ、パッケージ、ファンクション
(変換前、後の比較)
32
SQL Server接続
 SQL Serverに接続します。
 SQL Serverに接続する前に、SQL Server Agentサービスを起動する必要
があります。
33
スキーマ変換①
 マイグレーション先のSQL Serverのデータベースをチェックします。
 ¥マイグレーションするOracleのスキーマを選択し、「Convert
Schema」をクリックます。
※この時点では、まだSQL Serverへマイグレーションされていません。
34
スキーマ変換②
 マイグレートが完了すると、SQL Server側にマイグレート後のSQLが表示
されるようになります。
 エラーになったものや、別の方法で移行したい場合は、この時点でSQLの
修正ができます。
35
別の画面に切り替える際、
保存ダイアログが表示されます。
スキーマ変換②
 SQL Serverのマイグレーション先のスキーマを選択し、
右クリックメニュー「Synchronize with Database」をクリックします。
36
スキーマ変換③
 マイグレーションさせるオブジェクト画面が表示されるので、変換対象を
選択し、「OK」をクリックします。
37
マイグレーション先 SSMAのデータ
双方向同期
同期しない
マイグレーション先に同期
SSMAに同期
Action
注意事項
 SSMAで使用したデータタイプ、関数、および.NETのアセンブリは、
コンバートのタイミングで初めて移行先に格納されます。
※一部は、SSMA Extention for Oracleで導入

※注意
SQL Server 2017 の初期設定ではアセンブリのコンバート時にエラーになるため、
以下を設定してアセンブリの追加を許可します。
スキーマ変換④ 38
sp_configure ‘show advanced option’, 1
GO
RECONFIGURE
GO
sp_configure ‘clr strict security’, 0
GO
データマイグレーション①
 Oracleのマイグレーション対象テーブルを選択し、「Migrate Data」を
クリックします。
 Oracle、SQL Serverへの接続要求がされるので接続します。
 文字コードの変換は、マイグレーション先のSQL Serverにインストールさ
れたOracle Data Providerに任されます。
39
データマイグレーション②
 マイグレーションが完了すると、結果が表示されれるので「Close」で終
了します。
 「Save Report」クリックで結果をCSVファイルに保存できます。
40
マイグレーション結果
 マイグレーションしたテーブルのほかに、SSMA用のテーブル、ビューが
作成されます。
41
(参考)モジュール入手元 42
 SSMA for Oracle / SSMA Extention Pack for Oracle
https://docs.microsoft.com/ja-jp/sql/ssma/sql-server-migration-assistant
※上記はマニュアル。ダウンロードURLはここのリンクから辿ります。
 Oracle Net Client
http://www.oracle.com/technetwork/database/enterprise-
edition/downloads/oracle12c-windows-3633015.html?ssSourceSiteId=otnjp
 Oracle Data Provider(ODAC)
http://www.oracle.com/technetwork/jp/database/windows/downloads/inde
x-214820-ja.html
SQL ServerからOracleへの
マイグレーション
43
SQL Developer
 SQL Developerは、Oracle が提供する無償のGUIのデータベース管理
ツールです。
 Oracle Databaseに同梱されていますが、別途入手可能です。
 以下のステップに分けてマイグレーションできます
 移行性評価(レポートの作成)
 スキーママイグレーション
 データマイグレーション
44
SQL Developerの構成例 45
SQL Server SQL Developer
JKD8
jtds
Oracle Database
同居可能
移行元DB 移行先DB①SQL Developer
SQL Developer の動作環境 46
 SQL Developer 17.2 Linux版 の動作環境は以下の通り
 RPMでのインストールになります。
対象 OS ソフトウェア 備考
①SQL Developer Linux SQL Developer GUI環境が必要です。
JDK8
Jtds オープンソースのjdbc
※MicrosoftのJDBCは使用できません
(参考)検証環境
Oracle Linux 7.3(64bit)
ベース構成 : サーバー
追加アドオン: 開発ツール、互換性ライブラリ
SQL Developerの対応DB
 移行元
 SQL Server 7.0, 2000, 2005
 MS-Access
 Teradata
 MySQL
 DB2
 Sybase ASE
 Infomix
 移行先
 Oracle Database ~ 12c
47
SQL Developerの入手
 Oracleのサイトから入手できます。
 ユーザー登録は不要です。
 ライセンスに同意後、
任意のソフトをダウンロードします。
48
インストール手順①
 ① SQL Developer
 JDK8をインストールします。
 SQL Developer をインストールします。
→ /opt/sqldeveloper にインストールされます。
 SQL Developerの設定ファイルを編集します。
49
# rpm – ivh jdk-8u144-linux-x64.rpm
# rpm -ivh 17.2.0.188.1159-1.noarch.rpm
設定ファイル名: ~/.sqldeveloper/4.2.0/product.conf
(以下の行を追加)
SetJavaHome /usr/java/jdk1.8.0_144
Oracle Database
(マイグレーション先) の準備①
 Oracle Databaseでマイグレーション先のデータベースを作成します。
→移行元のデータベース名と違っても問題ありません。
 jtdsのJDBCドライバファイル(jtds1.3.1.jar)を任意のディレクトリにコ
ピーします。
50
Oracle Database
(マイグレーション先) の準備②
 マイグレーション情報を保存するリポジトリにするユーザーを作成します。
このユーザーには以下のロール、権限を付与します。
 ロール
CONNECT WITH ADMIN OPTION, RESOURCE WITH ADMIN OPTION
 権限
ALTER ANY ROLE, ALTER ANY SEQUENCE, ALTER ANY TABLE,
ALTER TABLESPACE, ALTER ANY TRIGGER, COMMENT ANY TABLE,
CREATE ANY SEQUENCE, CREATE ANY TABLE, CREATE ANY TRIGGER,
CREATE VIEW WITH ADMIN OPTION,
CREATE MATERIALIZED VIEW WITH ADMIN OPTION,
CREATE PUBLIC SYNONYM WITH ADMIN OPTION,
CREATE ROLE, CREATE USER, DROP ANY SEQUENCE, DROP ANY TABLE,
DROP ANY TRIGGER, DROP USER, DROP ANY ROLE, GRANT ANY ROLE,
INSERT ANY TABLE, SELECT ANY TABLE, UPDATE ANY TABLE
51
SQL Developerの起動
 GUIが使用できる環境で、以下のシェルを実行します。
52
$ /opt/sqldeveloper/sqldeveloper.sh
SQL Developerの画面 53
マイグレーションの手順
 SQL Server接続
 移行オプション設定
 ウィザードでのマイグレーション
54
 メニューの「ツール」ー「プリファレンス」で画面を表示します。
 画面左のツリーメニューの「データベース」ー「サードパーティJDBCドライバ」
を選択します。
 「エントリの追加」をクリックし、jtdsのドライバファイル(jtds-1.3.1.jar)を選択
します。
 「OK」で画面を閉じます。
SQL Server接続① 55
SQL Server接続②
 「新規追加」をクリックします。
56
SQL Server接続③
 SQL Serverのタブを選択します。
 接続名、接続に必要な情報を入力して「接続」をクリックします。
※データベースの設定が必須です。
 接続に成功すると、SQL DeveloperにSQL Serverのオブジェクトツリーが表示されま
す。
57
移行オプションの設定①
 「ツール」-「プリファレンス」-ツリーアイテム「移行」で選択します。
移行対象オブジェクトのほか、12cへの対応を行うか選択します。
 Teradata → エクスポートの最小、最大数
 データ移行オプション → NULLデータの扱い、データ形式等
 トランスレータ → 移行元のデータ形式、変数などの形式等
 識別子オプション → 移行元の識別子の付加
 生成オプション
 移行スクリプト作成の作成単位
 移行時の付加情報
 移行対象オブジェクト
58
ウィザードでのマイグレーション①
 SQL Serverのマイグレーション対象を右クリックし、「Oracleへ移行」
をクリックします。
59
ウィザードでのマイグレーション②
 移行ウィザード画面が起動します。「次」をクリックします。
60
ウィザードでのマイグレーション③
 移行の情報を保存するリポジトリDBを選択し、「次」をクリックします。
 接続情報が未作成の場合は、「新しい接続」をクリックして追加します。
61
「新しい接続」で、接続情報を入力する
ウィザードでのマイグレーション④
 プロジェクト移行エンティティ名、保存ディレクトリを選択し、「次」を
クリックします。
62
ウィザードでのマイグレーション⑤
 移行元のDBを選択して「次」をクリックします。
63
ウィザードでのマイグレーション⑥
 移行対象のデータベースを選択し、「次」をクリックします。
64
ウィザードでのマイグレーション⑦
 データ形式の変換オプションを登録し、「次」へを選択します。
65
ウィザードでのマイグレーション⑧
 移行対象のオブジェクトを選択し、「次」をクリックします。
66
ウィザードでのマイグレーション⑨
 移行先のDB接続先を選択し、「次」を選択します。
接続ユーザーは、SYSTEMまたはDBA権限があるユーザーにしまs。
67
ウィザードでのマイグレーション⑩
 データの移動に使用する接続情報を選択し、「次」をクリックします。
68
ウィザードでのマイグレーション⑪
 変換内容を確認し、問題なければ「終了」をクリックします。
69
ウィザードでのマイグレーション⑫
 完了後、移行のツリーが表示されます。実行日付をクリックすると結果の
確認ができます。
70
オブジェクトのコピー①
 SQL Serverから表を単体でコピーできます。
 対象の表を右クリック、「Oracleへのコピー」をクリックします。
71
オブジェクトのコピー②
 コピーするOracle接続先を選択し、コピーのオプションを設定後に
「OK」をクリックします。
 事前にマイグレーション先のデータベースに接続する必要があります。
72
オブジェクトのコピー③
 コピー結果のログが表示されるので確認します。
73
(参考)モジュール入手元
 SQL Developer
http://www.oracle.com/technetwork/jp/developer-tools/sql-
developer/downloads/index.html
 JDK8
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-
downloads-2133151.html
 jTDS
https://sourceforge.net/projects/jtds/
74
SQLの動作の違いについて
75
SQL の動作の違いについて
 マイグレーションツールでテーブルやデータ、プロシージャ、ファンク
ションなどの移行ができても、SQLでのデータの扱い方が違うなどのため、
実行結果が異なってしまう場合があります。
ここでは、データの扱い方が違うために、結果が異なってしまう例をいく
つかご紹介します。
76
演算の動作の違い①
 SQL Serverでは整数同士の結果は小数点以下を切り捨てた整数を返します。
Oracleは結果によって整数または少数を返します。
SQL Server
Oracle
77
1> select 1/2, 2/2, -1/2
2> go
----------- ----------- -----------
0 1 0
SQL> select 1/2, 2/2, -1/2 from dual;
1/2 2/2 -1/2
---------- ---------- ----------
.5 1 -.5
演算の動作の違い②
 演算の動作による影響
 整数同士の割り算している箇所
 日時計算
→ SQL Serverでは日の計算のみ反映されます。
例) 2017/01/01 00:00:00 に + 1 + 2/24 + 3/(24 *60) + 4/(24*60*60)
SQL Server → 2017/01/02 00:00:00
Oracle → 1027/01/02 02:03:04
78
演算の動作の違い③
 対応例
 Oracle → SQL Server
演算するどちらか一方の辺を少数付きの数字型することで小数点以下の計算が
出来でます。
ただし、答えが整数の場合でも答えが少数付きの数字になります。
固定値の場合: 1/2 → 1/2.0
列の場合 : A/B → A/ cast (B as numeric)
 SQL Server → Oracle
計算結果をtruncで小数点以下を切り捨てます。
固定値、列共通: 1/2 , A/B → trunc(1/2) , trunc(1/2)
79
NULLの扱い①
 SQL Server では、長さが0の空文字と NULLは明確に区別されますが、
Oracleでは長さが0の空文字とNULLと区別されないため、条件判定を
行った時の動作、出力結果が異なります。
例)SELECT * FROM tbl1 WHERE col1 is null
→ Oracle NULL と空文字を出力
SQL Server NULLのみを出力
80
※Oracleでは将来この処理方法を変更する可能性についてマニュアルで示唆しています。
そのため、今からNULLと空文字を別として扱うことを考慮しておくとよいかと思います。
→Oracle® Database SQL言語リファレンス 12c リリース2 (12.2)
https://docs.oracle.com/cd/E82638_01/SQLRF/Nulls.htm#GUID-B0BA4751-9D88-426A-84AD-BCDBD5584071
NULLの扱い②-1
 NULLの並び順は、Oracleと他のDBでは異なります。
 NULLの出力順序を合わせるには、SQLで制御する必要がありますが、DBごと
に対応方法が異なります。
 OracleではSQLの記述でNULLを最初、または最後に持っていくことができま
す。
 NULLを最初に: ORDER BY col1 [ASC|DESC] NULLS FIRST
 NULLを最後に: ORDER BY col1 [ASC|DESC] NULLS LAST
81
Oracle SQL Server
昇順 最後 最初
降順 最初 最後
NULLの扱い②-2
 SQL Serverの場合、NULLの並びを制御する機能がないため、条件式を
使って制御する必要があります。
例)
SELECT col1, col2 FROM 表 ORDER BY
CASE WHEN col1 IS NULL THEN 1 ELSE 0 END, col1
82
col1がNULLなら最後にする場合。
最初の場合以下のようにする。
CASE WHEN col1 IS NULL THEN 0 ELSE 1 END
col1 でソート
(NULLはソート済み)
検索結果の出力行数制限
 行の検索結果を制限を行う場合、以下の違いがあります。
 SQL Server
SELECT TOP 10 [PERCENT] [WITH TIES] * from tbl1 order by 列
 Oracle 11g 以前
※ROWNUMを駆使して対応する必要があり
select rownum, * from tbl1 where rownum <= 10 order by 列
 Oracle12c
※SQLで実装
SELECT * from tbl1 FETCH FIRST 10 [PERCENT] ROWS [ONLY | WITH TIES]
order by 列
83
照合順序の違い①
 SQL ServerとOracleでは文字の照合順序が異なるため、文字列のソート結果や、検索
の結果が変わります。
 SQL Server での対応
 データベース作成時、照合順序を Japanese_bin2 にする
 表作成時に、列の照合順序を設定する
 ソートのみなら以下のように対応可能
SELECT * FROM 表 ORDER BY 列 COLLATE JAPANESE_BIN2
84
DB 照合順序 概要
SQL Server Japanese_CI_AS 日本語、大文字小文字区別なし、アクセント区別
Oracle NLS_LANGUAGE=JAPANESE
NLS_SORT =BINARY
日本語、バイナリ(文字コードの句点識別あり)
CREATE TABLE TBL1 (
COL1 varchar(100) COLLATE JAPANESE_BIN2 , …
照合順序の違い②
 Oracleでの対応
(並び替えの場合)
 SQL個別でORDER BYでソートを設定する。また、索引を作成する。
SELECT ~ ORDER BY NLSSORT(列, ’NLS_SORT=JAPANESE_M_CI’);
CREATE INDEX IDX on 表 ( NLSSORT(列, ’NLS_SORT=JAPANESE_M_CI’));
 セッションで設定
ALTER SESSION SET NLS_SORT=‘JAPANESE_M_CI’;
SELECT ~ ORDER BY 列
 12cR2以降のバージョンのみ
表の列に指定 ※
85
CREATE TABLE TBL1 (
COL1 varchar2(100) COLLATE JAPANESE_M_CI , …
※この方法を行った際、初期パラメータmax_string_size=extended に変更しなければエラーになりました。
STARTUP UPGRADE
ALTER SYSTEM SET MAX_STRING_SIZE=EXTENDED SCOPE=BOTH;
@?/rdbms/admin/utl32k.sql
(インスタンス再起動)
照合順序の違い③
(条件式(比較)での対応)
 NLS_SORT設定を行っただけでは、WHERE条件式や関数では文字判定が
BINARYになったままとなり、抽出結果に反映されません。そのため以下の設
定で対応する必要があります。
ALTER SESSION SET NLS_COMP=LINGUISTIC;
ALTER SESSION SET NLS_SORT=JAPANESE_M_CI;
86
(参考)Oracle® Databaseグローバリゼーション・サポート・ガイド 12cリリース2 (12.2)
5 言語ソートと照合
https://docs.oracle.com/cd/E82638_01/NLSPG/linguistic-sorting-and-matching.htm#GUID-B0971B89-63EF-409B-B14A-459B8211E764

More Related Content

PPTX
Oracle Database Vaultのご紹介
PDF
2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携
PPTX
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
PDF
Amazon SageMaker 모델 학습 방법 소개::최영준, 솔루션즈 아키텍트 AI/ML 엑스퍼트, AWS::AWS AIML 스페셜 웨비나
PDF
[AWSマイスターシリーズ]Identity and Access Management (IAM)
PDF
AWS 技術者向け Azure サービス解説 de:code2019版 #CD81
PPTX
[BurpSuiteJapan]HTTP基礎入門
PDF
Amazon RDSを参考にしたとりまチューニング
Oracle Database Vaultのご紹介
2 TomcatによるWebアプリケーションサーバ構築 第4章 Tomcatの構成(1)-仮想ホスト、Apache連携
[Oracle DBA & Developer Day 2014] しばちょう先生による特別講義! RMANの運用と高速化チューニング
Amazon SageMaker 모델 학습 방법 소개::최영준, 솔루션즈 아키텍트 AI/ML 엑스퍼트, AWS::AWS AIML 스페셜 웨비나
[AWSマイスターシリーズ]Identity and Access Management (IAM)
AWS 技術者向け Azure サービス解説 de:code2019版 #CD81
[BurpSuiteJapan]HTTP基礎入門
Amazon RDSを参考にしたとりまチューニング

What's hot (20)

PDF
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
PDF
Selenium入門
PDF
WPSCanによるWordPressの脆弱性スキャン
PDF
Zabbix Performance Tuning
PDF
SQL serverのデータ破損に備える
PDF
AWSではじめるDNSSEC
PPTX
Sistema de gestores de base de datos
PDF
Zabbixのパフォーマンスチューニング & インストール時の注意点
PPTX
IP ベースのアクセス制御から脱却してよりセキュアな環境を構築しよう
PDF
[Oracle Code Tokyo 2017] Live Challenge!! SQLパフォーマンスの高速化の限界を目指せ!
PPTX
PL/SQL All the Things in Oracle SQL Developer
PPTX
Aws 分散負荷テストツールを使ってapp runnerをスケールさせる(デモ動画削除)
PDF
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
PDF
[D35] インメモリーデータベース徹底比較 by Komori
PDF
片手間MySQLチューニング戦略
PDF
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch Logs
PDF
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
PPTX
Introduction to Zabbix - Company, Product, Services and Use Cases
PDF
Zabbix
PDF
SQL Server パフォーマンスカウンター
[B24] Oracle から SQL Server システム移行の勘所 by Norio Nakamura
Selenium入門
WPSCanによるWordPressの脆弱性スキャン
Zabbix Performance Tuning
SQL serverのデータ破損に備える
AWSではじめるDNSSEC
Sistema de gestores de base de datos
Zabbixのパフォーマンスチューニング & インストール時の注意点
IP ベースのアクセス制御から脱却してよりセキュアな環境を構築しよう
[Oracle Code Tokyo 2017] Live Challenge!! SQLパフォーマンスの高速化の限界を目指せ!
PL/SQL All the Things in Oracle SQL Developer
Aws 分散負荷テストツールを使ってapp runnerをスケールさせる(デモ動画削除)
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
[D35] インメモリーデータベース徹底比較 by Komori
片手間MySQLチューニング戦略
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch Logs
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
Introduction to Zabbix - Company, Product, Services and Use Cases
Zabbix
SQL Server パフォーマンスカウンター
Ad

Similar to 20180216 sapporo techbar_db_migration (20)

PDF
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
PPTX
2012年1月技術ひろば
PPTX
Sql azure入門
PDF
Windows環境でのMySQL
PDF
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
PDF
WindowsでMySQL入門
PDF
仮想ネットワーク構築8枚slide
PDF
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
PDF
DBP-008_SQL Server on Azure VM 最新情報とベスト プラクティス
PDF
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
PPTX
Microsoft Build 2021 前夜祭 LT#4
PDF
Share pointを支えるsql server2014最新情報
PDF
20130203 oss-db-lpi
PDF
20130203 OSS-DB Exam Silver 技術解説無料セミナー
PDF
SoftLayer Bluemix Summit 2015 はじめてのSoftLayer(サーバー、ストレージ編)
PDF
Apps for office オンプレミスとクラウド
PPTX
2011/12/3 わんくま同盟
PPTX
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
PDF
[db tech showcase Tokyo 2014] C34:[楽天] 詳説 楽天のデータベースアーキテクチャ史 -シングルノードから仮想化フラッシ...
PPTX
2011/11/26 Dot netlab
[20171019 三木会] データベース・マイグレーションについて by 株式会社シー・エス・イー 藤井 元雄 氏
2012年1月技術ひろば
Sql azure入門
Windows環境でのMySQL
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
WindowsでMySQL入門
仮想ネットワーク構築8枚slide
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
DBP-008_SQL Server on Azure VM 最新情報とベスト プラクティス
A13 MySQL & NoSQL~Best of both world~ by Philip Antoniades & Ryusuke Kajiyama
Microsoft Build 2021 前夜祭 LT#4
Share pointを支えるsql server2014最新情報
20130203 oss-db-lpi
20130203 OSS-DB Exam Silver 技術解説無料セミナー
SoftLayer Bluemix Summit 2015 はじめてのSoftLayer(サーバー、ストレージ編)
Apps for office オンプレミスとクラウド
2011/12/3 わんくま同盟
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
[db tech showcase Tokyo 2014] C34:[楽天] 詳説 楽天のデータベースアーキテクチャ史 -シングルノードから仮想化フラッシ...
2011/11/26 Dot netlab
Ad

More from Insight Technology, Inc. (20)

PDF
グラフデータベースは如何に自然言語を理解するか?
PDF
Docker and the Oracle Database
PDF
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
PDF
事例を通じて機械学習とは何かを説明する
PDF
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
PDF
MBAAで覚えるDBREの大事なおしごと
PDF
グラフデータベースは如何に自然言語を理解するか?
PDF
DBREから始めるデータベースプラットフォーム
PDF
SQL Server エンジニアのためのコンテナ入門
PDF
Lunch & Learn, AWS NoSQL Services
PDF
db tech showcase2019オープニングセッション @ 森田 俊哉
PDF
db tech showcase2019 オープニングセッション @ 石川 雅也
PDF
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
PPTX
難しいアプリケーション移行、手軽に試してみませんか?
PPTX
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
PPTX
そのデータベース、クラウドで使ってみませんか?
PPTX
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
PDF
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
PPTX
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
PPTX
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
グラフデータベースは如何に自然言語を理解するか?
Docker and the Oracle Database
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
事例を通じて機械学習とは何かを説明する
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
MBAAで覚えるDBREの大事なおしごと
グラフデータベースは如何に自然言語を理解するか?
DBREから始めるデータベースプラットフォーム
SQL Server エンジニアのためのコンテナ入門
Lunch & Learn, AWS NoSQL Services
db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
難しいアプリケーション移行、手軽に試してみませんか?
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
そのデータベース、クラウドで使ってみませんか?
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]

20180216 sapporo techbar_db_migration