Oracle Corporation

Similar documents
Oracle SQL Developerの移行機能を使用したOracle Databaseへの移行

キャラクタ・セットの移行に関するベスト・プラクティス

MS240 JISⅡ半角カナ文字データを含むカード読み取り設定例

文字コード略歴 よこやままさふみ社内勉強会 2012/05/18 文字コード略歴 Powered by Rabbit 2.0.6

Oracle9i DB R2構築手順

意外と簡単!? Oracle Database 11g -バックアップ・リカバリ編-

目次 はじめに... 2 無料トライアルのサインアップ方法... 3 トライアル環境へのアクセス 参考情報

DS-3300 プログラミングマニュアル 設定項目 ページ 初期値設定マップ 1-2 ファームウェアバージョン情報 2 システム設定 3 読取機能設定 4 インターフェース設定 5 バーコード規格別読取設定 6-7 チェックデジット設定 8 読取桁数設定 9 キャラクタ付加設定 10 数字バーコード

Slide 1

Oracle SQL Developer Data Modeler

基礎情報処理 I (文字型)

I ASCII ( ) NUL 16 DLE SP P p 1 SOH 17 DC1! 1 A Q a q STX 2 18 DC2 " 2 B R b

intra-mart FormatCreator Version6.1

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらな

intra-mart EX申請システム version.5.3 PDFオプション リリースノート

Windowsユーザーの為のOracle Database セキュリティ入門

Microsoft Word - oo4o_extra.doc

10

intra-mart EX申請システム version.7.2 PDFオプション リリースノート


Oracle DB 10g R2構築手順

内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft

データ変換 How to セミナー 第1章

Title Slide with Picture

OpenRulesモジュール

OpenRulesモジュール

Title Slide with Picture

3/7 マイグレーション開発方針 顧客名 0 作成者 根岸正 < プログラム移行方針 > システム名称 A-VX システムマイグレーション作成日 2015/09/01 < COBOL 資産のプログラム移行 > COBOLソース ( メインとCOPYLIB) を入力としてSCC 言語変換ツールにてVB

intra-mart EX申請システム version.5.4 提出依頼機能 リリースノート

HULFT-DataMagic Ver2.2.0 製品対応OS

Slide 1

アジェンダ ORACLE MASTER Oracle Database 11g 概要 11g SQL 基礎 Ⅰ 試験紹介 ポイント解説 Copyright 2011 Oracle. All rights reserved. 2

KWCR3.0 instration

今さら聞けない!? Oracle入門 ~前編~

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第7版   None

ユーザ各位 No. E 年 8 月吉日 日本システム技術株式会社 GAKUEN EX/REVOLUTION EX/UNIVERSAL PASSPORT EX Ver1.5 リリースのお知らせ 拝啓残暑のみぎり 貴学ますますご清祥のこととお慶び申し上げます また 平素は弊社製品 G

2. バージョンアップ内容 intra-mart WebPlatform/AppFramework Ver.7.1 および Ver.7.2 に対応いたしました SAP JCo 3.0.x に対応いたしました 3. 製品概要 IM-ERP リアルコネクトは SAP システム内のデータをリアルタイムに取

ご利用のブラウザのバージョンによっては 若干項目名が異なる場合があります 予めご了承ください Windows をお使いの場合 [ 表示 ] [ エンコード ] [ 日本語 ( 自動選択 )] を選択 [ 表示 ] [ エンコード ] [Unicode(UTF-8)] を選択 Firefox をご利用

Rational Roseモデルの移行 マニュアル

Microsoft Word - SQLServer_fra_Linux_v1.1.docx

Oracle Database Clientリリース・ノート, 10gリリース1( ) for Microsoft Windows

II ( ) prog8-1.c s1542h017%./prog8-1 1 => 35 Hiroshi 2 => 23 Koji 3 => 67 Satoshi 4 => 87 Junko 5 => 64 Ichiro 6 => 89 Mari 7 => 73 D

セットアップカード

スライド 1

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第8版  

Microsoft Word - PCOMM V6.0_FAQ.doc

<< 目次 >> 1 PDF コンバータのインストール ライセンスコードの入力 PDF にフォントを埋め込みたい場合の設定 PDF オートコンバータ EX で使用しない場合 PDF コンバータ単体で使用する場合の説明 PDF コンバータのアン

Oracle9i Databaseグローバリゼーション・サポート・ガイド, リリース2(9.2)

改版履歴 版数 改版日付 改版内容 /03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2

intra-mart Accel Platform

Oracle Business Intelligence Standard Edition One のインストール

Veritas System Recovery 16 Management Solution Readme

Oracle DatabaseとIPv6 Statement of Direction

文字コードとその実装

How to Use the PowerPoint Template

PowerPoint Presentation

intra-mart EX申請システム version.7.2 事前チェック

BIP Smart FAQ

第 7 章 ユーザー データ用表領域の管理 この章では 表や索引を格納するユーザー データ用表領域の作成や 作成後のメンテナンスに ついて解説します 1. ユーザー データ用表領域の管理概要 2. ユーザー データ用表領域作成時の考慮事項 3. ユーザー データ用表領域の作成 4. ユーザー データ

Oracle Corporation

WebFOCUS検証

型番 USB :F830-U RS232C:F830-R 組込み式 2 次元コードリーダー F830 詳細設定マニュアル Ver1.0 1

VB実用Ⅲ⑩ フリーデータベースⅡ

ACMS 総合カタログ Data Applications Company, Limited Enterprise Data Exchange Solutions

Transcription:

Oracle Direct Seminar < 写真欄 > もう文字化けには悩まない! Oracle Database 11g R2 なら Windows 7 クライアントでもばっちり! 日本オラクル株式会社

以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらないで下さい オラクル製品に関して記載されている機能の開発 リリースおよび時期については 弊社の裁量により決定されます Oracle は 米国オラクル コーポレーション及びその子会社 関連会社の米国及びその他の国における登録商標または商標です その他の名称はそれぞれの会社の商標の可能性があります 2

Agenda 文字コードとは 文字セットとエンコーディング Oracle キャラクタ セット データベースのキャラクタ セット データベース キャラクタ セット 各国語キャラクタ セット クライアントのキャラクタ セット NLS_LANG クライアントとサーバーの通信とデータ変換 文字化けの原因 注意すべき文字化け対策 外字の文字化け対策 ~ の文字化け対策 Vista 新文字コード JIS2004 に対応させる方法 Oracle Direct の無償技術サービス http://www.oracle.com/lang/jp/direct/services.html SQL Server からの移行アセスメント MySQL からの移行相談 PostgreSQL からの移行相談 Access からの移行アセスメント Application Server 移行相談 Oracle Database バージョンアップ支援 Oracle Developer/2000 Web アップグレード相談 パフォーマンス クリニック Oracle Database 構成相談 Oracle Database 高可用性診断 システム連携アセスメント 3

Agenda 文字コードとは 文字セットとエンコーディング Oracle キャラクタ セット データベースのキャラクタ セット データベース キャラクタ セット 各国語キャラクタ セット クライアントのキャラクタ セット NLS_LANG クライアントとサーバーの通信とデータ変換 文字化けの原因 注意すべき文字化け対策 外字の文字化け対策 ~ の文字化け対策 Vista 新文字コード JIS2004 に対応させる方法 4

文字コードとは 文字コード = 文字セット + エンコーディング 文字セット : 文字の集合の論理的な定義 エンコーディング : 文字セットのコンピュータ上での実装方法 文字を処理する場合 コンピュータ システムは文字をグラフィカルな表現としてではなく数値コードとして処理 たとえば データベースに文字 A を格納すると 実際はコンピュータ システムによって解析される数値コードが格納される 異なるキャラクタ セット間のデータ変換を必要とする可能性があるグローバル環境では 文字コードが重要 5

代表的な文字コード ASCII JIS Shift JIS EUC Unicode 6

ASCII ANSI( 米国規格協会 ) によって制定された文字コード コンピュータ用の英数字のコード体系として最も普及している 7 ビットで表現され アルファベット 数字 記号 制御コードの 128 文字で構成される ISO( 国際標準化機構 ) によって 8bit(256 文字 ) に拡張された ISO-8859-1(Latin-1) も広く使われている 7

ASCII コード表 上位 3 ビット 0 1 2 3 4 5 6 7 0 NUL DLE 空白 0 @ P ` p ASCII キャラクタ セットでエンコードされた文字 数字の 1 31 数字の 2 32 大文字の A 41 大文字の B 42 小文字の a 61 小文字の b 62 下位 4 ビット 1 SOH DC1! 1 A Q a q 2 STX DC2 " 2 B R b r 3 ETX DC3 # 3 C S c s 4 EOT DC4 $ 4 D T d t 5 ENQ NAK % 5 E U e u 6 ACK SYN & 6 F V f v 7 BEl ETB ' 7 G W g w 8 BS CAN ( 8 H X h x 9 HT EM ) 9 I Y i y A LF SUB * : J Z j z B VT ESC + ; K [ k { C FF FS, < L l D CR GS - = M ] m } E SO RS. > N ^ n ~ F SI US /? O _ o DEL 8

JIS JIS 規格によって規定されている日本語の文字コード メールの送受信に使われている 7+7=14 ビットで構成されている ASCII 文字と漢字など 文字の切り替えにはスケープシーケンスを用いる ISO-2022-JP としても知られている 9

Shift JIS Microsoft によって制定された日本語の文字コード 漢字 1 文字を 2 バイトで表す Windows などで広く使われている 10

EUC AT&T が定めた 複数バイトの文字を扱う文字コード UNIX 上で広く使われている 日本語の EUC コードを特に EUC-JP 日本語 EUC と呼ぶ 11

Unicode Apple HP IBM Microsoft Oracle などが加盟するユニコードコンソーシアムにて標準化された文字コード体系 プラットフォーム プログラム 言語に係わらず すべての文字に独立した番号を与える XML Java などの最先端の技術の前提となっている UCS2 UTF-8 などのエンコード方式 ( 表現方法 ) がある 12

Agenda 文字コードとは 文字セットとエンコーディング Oracle キャラクタ セット データベースのキャラクタ セット データベース キャラクタ セット 各国語キャラクタ セット クライアントのキャラクタ セット NLS_LANG クライアントとサーバーの通信とデータ変換 文字化けの原因 注意すべき文字化け対策 外字の文字化け対策 ~ の文字化け対策 Vista 新文字コード JIS2004 に対応させる方法 13

Oracle キャラクタ セットとは Oracle データベースで利用する文字セットおよびエンコーディング方式を定義したもの データベース側およびクライアント側で設定できる 主要な文字コードに対応したキャラクタ セットが用意されている Oracle キャラクタ セット名は 次のネーミング規則で表される [ 地域 ][1 文字あたりのビット数 ][ 標準文字コード名 ] 14

Oracle で使用可能なキャラクタ セット例 種類 文字コード 説明 Oracleキャラクタ セット名 7 ビットキャラクタ セット ASCII 英語 (ASCII) のみ US7ASCII 8 ビットキャラクタ セット ISO 8859-1 West European 西ヨーロッパの言語全般 WE8ISO8859P1 固定幅マルチバイト キャラクタ セット Unicode3.2 UTF-16 Unicode 1 文字を固定長の複数バイトで表現 AL16UTF16 可変幅マルチバイト キャラクタ セット Japanese Shift-JIS 16 ビット日本語 JA16SJIS Japanese Extended UNIX Code ~ 問題に対応 JA16SJISTILDE 24 ビット日本語 JA16EUC ~ 問題に対応 JA16EUCTILDE Unicode3.0 UTF-8 Unicode 1 文字を 1 バイト以上で表現 AL32UTF8 15

Oracle Database でのキャラクタ セットの指定 データベースでは 2 種類のキャラクタ セットが指定可能 データベース キャラクタ セット 各国語キャラクタ セット CREATE DATABASE "orcl DATAFILE 'D: oracle oradata orcl system01.dbf' SIZE 300M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SYSAUX DATAFILE 'D: oracle oradata orcl sysaux01.dbf' SIZE 120M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE 'D: oracle oradata orcl temp01.dbf' SIZE 20M REUSE AUTOEXTEND ON SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE 'D: oracle oradata orcl undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON LOGFILE GROUP 1 ('D: oracle oradata orcl redo01.log') SIZE 51200K, GROUP 2 ('D: oracle oradata orcl redo02.log') SIZE 51200K, GROUP 3 ('D: oracle oradata orcl redo03.log') SIZE 51200K CHARACTER SET JA16SJISTILDE NATIONAL CHARACTER SET AL16UTF16 16

データベース キャラクタ セット データベース内で文字データを格納する際に使用する文字コード CHAR データ型 (CHAR VARCHAR2 CLOB および LONG) で格納されるデータ 表名 列名および PL/SQL 変数などの識別子 SQL と PL/SQL のソース コードの入力と格納 データベースの作成後は 一部の例外を除いて キャラクタ セットを変更することはできない キャラクタ セット JA16EUC JA16EUCTILDE JA16SJIS JA16SJISTILDE AL32UTF8 説明 EUC 24ビット日本語波形のダッシュとチルドがUnicodeとの間でマッピングされる方法を除き JA16EUCと同じシフトJIS 16ビット日本語波形のダッシュとチルドがUnicodeとの間でマッピングされる方法を除き JA16SJISと同じ Unicode 5.0 UTF-8ユニバーサル キャラクタ セット 17

各国語キャラクタ セット 各国語キャラクタ セットとは Unicode の文字データを格納するための代替キャラクタ セット NCHAR NVARCHAR2 および NCLOB データ型で格納されるデータ UTF8 または AL16UTF16 キャラクタ セットを使用可能 <Unicode とキャラクタ セットの対応 > キャラクタ セット サポートしている データベース キャラクタ セット 各国語キャラクタ セット RDBMSのリリース UTF8 8.0-11g 可能 可能 UTFE 8.0-11g 可能 不可 AL32UTF8 9i - 11g 可能 不可 AL16UTF16 9i - 11g 不可 可能 推奨 18

クライアント キャラクタ セット NLS_LANG 環境変数を使用して クライアント プログラムによって入力または表示されるデータの言語と地域 およびキャラクタ セットを設定 NLS_LANG 環境変数の設定方法 UNIX プラットフォーム上では環境変数として設定 Windows プラットフォームではレジストリ内で設定 NLS_LANG = JAPANESE_JAPAN.JA16SJIS LANGUAGE TERRITORY CHARSET LANGUAGE: メッセージやソート順の言語設定 TERRITORY: 日付や時刻 数値書式の設定 CHARSET: アプリケーションで使用するキャラクタ セット 19

補足 :NLS パラメータによる表示の制御 NLS(National Language Support) パラメータによって クライアントとサーバーの両方でのロケール固有の動作が決定 NLS パラメータは 次の 4 通りの方法で指定可能 サーバー上の初期化パラメータとして指定 クライアントの環境変数として指定 ALTER SESSION 文を使用して指定 SQL 関数内で指定 初期化パラメータ NLS_LANGUAGE SQL> ALTER SESSION SELECT nls_date_language 環境変数 NLS_LANG 20

補足 :NLS データベース パラメータ 以下の初期化パラメータで指定 NLS_LANGUAGE 次のセッション特性に対してデフォルトの規則を指定 サーバー メッセージの言語 曜日名と月名の言語およびその略称 ORDER BY が指定されている場合の文字データのソート順序 NLS_TERRITORY 次のデフォルトの日付および数値の書式特性に関する規則を指定 日付書式 各国通貨記号 週の最初の曜日 21

補足 :NLS クライアント パラメータ NLS_LANG 環境変数を使用して クライアント プログラムによって入力または表示されるデータの言語と地域 およびキャラクタ セットを設定 ALTER SESSION 文を使用して セッション単位で NLS_LANGUAGE と NLS_TERRITORY をオーバーライド可能 SQL> ALTER SESSION SET NLS_LANGUAGE=Japanese; SQL 関数で NLS パラメータを指定し SQL 文単位で以下の設定が可能 TO_CHAR TO_DATE TO_NUMBER NLS_UPPER NLS_LOWER NLS_INITCAP NLSSORT SQL> SELECT last_name FROM employees WHERE hire_date > TO_DATE ('01-JAN-1999','DD-MON-YYYY', 'NLS_DATE_LANGUAGE = AMERICAN'); 22

Agenda 文字コードとは 文字セットとエンコーディング Oracle キャラクタ セット データベースのキャラクタ セット データベース キャラクタ セット 各国語キャラクタ セット クライアントのキャラクタ セット NLS_LANG とは? クライアントとサーバーの通信とデータ変換 文字化けの原因 注意すべき文字化け対策 外字の文字化け対策 ~ の文字化け対策 Vista 新文字コード JIS2004 に対応させる方法 23

キャラクタ セット変換のしくみ クライアント サーバー間でのキャラクタ セット変換例 変換が必要ない例 変換可能な例 変換できない例 ( 文字化け ) 24

キャラクタ セット変換 (1) クライアントとサーバーが同じ言語環境で稼働し 同じキャラクタ セットを使用している場合は変換が不要 環境変数 NLS_LANG JA16SJIS あ 0x82A0 Windows JA16SJIS 変換なし キャラクタ セット JA16SJIS あ 0x82A0 25

キャラクタ セット変換 (2) クライアントとサーバーが異なるキャラクタ セットの場合は キャラクタ セット変換が必要 変換は Oracle Net を介して ユーザーが意識することなく自動的に実行される 環境変数 NLS_LANG JA16SJIS あ 0x82A0 Windows JA16SJIS Oracle Net による自動変換 クライアントのキャラクタ セットとデータベースのキャラクタ セットが違う場合 Oracle Net が自動的に変換 キャラクタ セット JA16EUC あ 0xA4A2 26

キャラクタ セット変換 (3) クライアントとサーバーが異なるキャラクタ セットの場合は キャラクタ セット変換が必要 クライアントの環境変数の設定で 無理やりサーバー側のキャラクタ セットに合わせると 正しい変換が行われない あ 0x82A0 Windows JA16SJIS 自動変換 キャラクタ セット JA16EUC あ 0xA4A2 環境変数 NLS_LANG=JA16EUC 変換なし Windows JA16SJIS? 0xA4A2 27

キャラクタ セット変換 (4) 各クライアントとサーバーの間でキャラクタ セット変換が発生するが AL32UTF8 がユニバーサル キャラクタ セットであるためデータ消失は生じない あ 0xA4A2 UNIX JA16EUC データベースのキャラクタ セットは すべてのクライアントのキャラセットと同等か スーパーセットである必要 キャラクタ セット AL32UTF8 あ 0x82A0 Windows JA16SJIS Oracle Net による自動変換 あ E38182 28

キャラクタ セット変換 (5) データベース キャラクタ セットにクライアント キャラクタ セットのすべての文字が含まれていない場合はデータ消失が発生する クライアントが日本語を含む文字列を挿入すると データベースではデータが消失 あ 0xA4A2 UNIX JA16EUC キャラクタ セット US7ASCII あ 0x82A0? Windows JA16SJIS 29

Agenda 文字コードとは 文字セットとエンコーディング Oracle キャラクタ セット データベースのキャラクタ セット データベース キャラクタ セット 各国語キャラクタ セット クライアントのキャラクタ セット NLS_LANG クライアントとサーバーの通信とデータ変換 文字化けの原因 注意すべき文字化け対策 外字の文字化け対策 ~ の文字化け対策 Vista 新文字コード JIS2004 に対応させる方法 30

外字とは 文字コードの規定上 あるコードに対応する文字を利用者で規定することが出来るコード ( の集合 ) EUC: 基本的に JIS X208 の 85~94 区 SJIS:JIS X208 の定義外の 95~120 区 外字は機種依存文字 ( ベンダー定義文字 ) とユーザー外字に分かれる 機種依存文字 : メーカなどがシステムにあらかじめ組み込んでいた外字 ユーザー外字 : 個々のユーザが作成した外字 31

機種依存文字とは 機種依存文字 : 外字領域のうち既にベンダーが独自にコードの割り当てを行っている文字集合 SJIS IBM 拡張文字 :115 区 ~119 区 NEC 選定 IBM 拡張文字 : 89 区 ~92 区 PC-9801 系文字 :13 区 EUC はベンダーにより完全にバラバラ 32

Oracle の機種依存文字対応 DB/ クライアント共に同じキャラクタ セットの場合は機種依存文字を扱うことができる DB/ クライアントのキャラクタ セットが異なる場合 SJIS Unicode 変換は可能 SJIS の機種依存文字は Unicode とマッピングされている DB のキャラクタ セットが Unicode の場合は機種依存文字を扱える SJIS Unicode なので Unicode にしかない文字は変換不可能 EUC はベンダーごとに機種依存文字に割り当てられている番号が違うので 正確にマッピングできない EUC は JIS X 0212( 補助漢字 ) を含んでおり 一部の SJIS 機種依存文字が含まれる EUC 補助漢字は Unicode とマッピングされているので 一部の SJIS 機種依存文字 (,,,,,,,,,, etc.) は変換可能 Locale Builder を利用してマッピングすることは可能 33

ユーザー外字とは ユーザー外字 : 外字領域のうち機種依存文字領域以外の部分 ユーザーが自由に文字を割り当てられる Microsoft Windows の場合は 標準で附属する外字エディタでユーザ外字が作成可能 34

Oracle のユーザー外字対応 DB/ クライアント共に同じキャラクタ セットの場合はユーザー外字を扱うことができる キャラクタ セットが同じだと文字コード変換が発生しないため DB/ クライアントのキャラクタ セットが異なる場合 基本的に ユーザー外字領域は変換の対象外 SJIS と EUC の直接変換はできない SJIS Unicode 変換は可能 SJIS の 0xF040~0xF9FC が Unicode(UCS2) の 0xE000~0xE757 に対応 Locale Builder を利用してマッピングすることは可能 35

Oracle Locale Builder ロケール データをカスタマイズするための GUI ツール 言語 地域 キャラクタ セットおよび言語ソートの 4 種類のロケール定義を管理 ユーザー定義文字やカスタマイズした言語規則を設定 36

外字対策まとめ SJIS の機種依存文字利用の観点では DB のキャラクタ セットは SJIS 系 Unicode 系にした方がいい それ以外はマッピングを行う必要がある Oracle Locale Builder を利用 37

Agenda 文字コードとは 文字セットとエンコーディング Oracle キャラクタ セット データベースのキャラクタ セット データベース キャラクタ セット 各国語キャラクタ セット クライアントのキャラクタ セット NLS_LANG クライアントとサーバーの通信とデータ変換 文字化けの原因 注意すべき文字化け対策 外字の文字化け対策 ~ の文字化け対策 Vista 新文字コード JIS2004 に対応させる方法 38

~ の文字化けの背景 Microsoft 社とその他のベンダーで SJIS と Unicode 変換時の ~ の文字コードマッピングが異なる SJIS 0x8160 Microsoft 社 (MS932 規定 ) 標準 (Unicode コンソーシアムや JIS X 0221 の規定に準拠 ) Unicode U+FF5E Unicode U+301C 参考 URL http://support.microsoft.com/default.aspx?scid=kb;ja;jp286776 39

文字コード変換による文字化け例 (INSERT) INSERT 時 1 アプリケーションでの変換 0x8160(MS932) U+FF5E(Unicode) 2 Oracle Net Services DBがSJISの時 :U+FF5E(Unicode) 0x8160(SJIS) Windows SJIS 0x8160 Microsoft 社 (MS932 規定 ) 標準 (Unicode コンソーシアムや JIS X 0221 の規定に準拠 ) Unicode U+FF5E Unicode U+301C アプリケーション SJIS (0x8160) 1 Unicode (U+FF5E) ~ を入力 2 DB には正しいコードで格納される SJIS 0x8160 40

文字コード変換による文字化け例 (SELECT) SELECT 時 1 Oracle Net Services DBがSJISの時 :0x8160(SJIS) U+301C(Unicode) 2 ミドル アプリケーションでの変換 U+301C(Unicode) N/A(MS932) Windows U+301C は ~ に変換できず文字化け SJIS 0x8160 Microsoft 社 (MS932 規定 ) 標準 (Unicode コンソーシアムや JIS X 0221 の規定に準拠 ) Unicode U+FF5E Unicode U+301C アプリケーション SJIS??? 2 Unicode (U+301C) Oracle Net ( 標準 ) 1 SJIS 0x8160 41

~ 文字化けの発生し得る環境 下記条件が揃った場合発生 Java VB5.0 以降 Access2000 以降など内部的に Unicode でデータを扱う開発 実行環境 Oracle の DB アクセスミドルウェアが Unicode 対応している Oracle ODBC Drive ODBC Driver のバージョンが 8.0.5.8.0 以降 ないし 8.1.5.5.0 以降 Oracle Provider for OLE DB バージョン 8.1.7.0.0 以降 Oracle Objects for OLE JDBC バージョン 8.1.6.3.14 以降ないし 8.1.7.3.14 以降 OCI ドライバ及び Thin ドライバ 出力エンコーディングが SJIS(MS932 相当 ) 42

~ 文字化け対策 文字化け問題に対応したキャラクタ セットの利用 JA16SJISTILDE/JA16EUCTILDE を使用 ~ を Microsoft 社のマッピング方法で変換 ~ 文字化け対応以外は JA16SJIS/JA16EUC と同じ DB/ クライアント共に R9.0.1.4 以降でないと利用できない R9.0.1.3 以前はキャラクタ セット自体が存在しないので指定できない 43

新キャラクタ セットの文字コード変換 SELECT 時 1 Oracle Net Services DBがSJISの時 :0x8160(SJIS) U+FF5E (Unicode) 2 ミドル アプリケーションでの変換 U+FF5E (Unicode) 0x8160(MS932) SJIS 0x8160 Microsoft 社 (MS932 規定 ) 標準 (Unicode コンソーシアムや JIS X 0221 の規定に準拠 ) Unicode U+FF5E Unicode U+301C Windows アプリケーション SJIS (0x8160) 2 Unicode (U+FF5E) U+FF5E は ~ に変換 Oracle Net (JA16SJISTILDE) 1 SJIS 0x8160 44

~ 文字化け対策その他の方法 1 Oracle9i 以降の国際化キャラクタ セットのデータ型を利用する NCHAR/NVARCHAR2/NCLOB メリット : データをU+FF5Eのまま取り扱える ミドルウェアにより利用できない場合がある (ex. Pro*COBOL) JA16SJISTILDE/JA16EUCTILDE 相当のキャラクタ セットを自作する NLS Data Installation Utility/Locale Builderの利用 デメリット : クライアントが多いと設定ファイルの配布が手間 45

~ 文字化け対策その他の方法 2 アプリケーションのコーディングを工夫する 表示側のアプリケーションで Unicode の変数の U+301C を U+FF5E に変換するようにコーディングする 文字列型を Unicode で扱う言語で SJIS のまま扱うようにする ( 変数格納時にエンコーディングで SJIS で扱うように指定 ) アプリケーションの出力で MS932 エンコーディングを避ける HTML の場合 UTF8 エンコーディングで出力するなど デメリット : エンコーディングの選択次第では ~ 以外の文字が文字化けする可能性もある 46

~ 文字化け対策まとめ DB/ クライアント共に JA16SJISTILDE を使用する その他 アプリケーション側での工夫もある 47

Agenda 文字コードとは 文字セットとエンコーディング Oracle キャラクタ セット データベースのキャラクタ セット データベース キャラクタ セット 各国語キャラクタ セット クライアントのキャラクタ セット NLS_LANG クライアントとサーバーの通信とデータ変換 文字化けの原因 注意すべき文字化け対策 外字の文字化け対策 ~ の文字化け対策 Vista 新文字コード JIS2004 に対応させる方法 48

JIS X 0213(JIS 2004) とは JIS X 0213(JIS 2004): Windows Vista でサポートされた新しい文字コード 日本語の文字コード規格 JIS X 0208 に第三 第四水準漢字などを加えたもの Unicode 3.2 では JIS 第三 第四水準の漢字はサロゲート ペアを使用 Unicode 3.2 を使えば取り扱い可能 49

サロゲートペアとは サロゲートペアの仕様が策定されたのは Unicode 2.0 16 ビットの Unicode では入りきらない文字のために 2 文字分の 32 ビットを使って表現している文字がサロゲートペア サロゲートペアを認識できない (1 文字は 16 ビットと決めつけている ) ソフトウェアは 1 文字を 2 文字と扱うために 文字の処理が崩壊してしまう 対応したフォント ( メイリオなど ) でないと表示できない文字がある 50

JIS X 0213 対策まとめ データベースの文字コードセット (NLS_CHARACTERSET) を AL32UTF8 に設定する フォント変更などを除けば 既存のアプリケーションにも特別な修正措置は不要 キャラクタ セット データベースのバージョン 9.2.0 10.1.0 10.2.0 11.1.0 11.2.0 UTF8 3.0 AL32UTF8 3.1 3.2 4.0 5.0 各国語キャラクタ セット データベースのバージョン 9.2.0 10.1.0 10.2.0 11.1.0 11.2.0 UTF8 3.0 AL16UTF16 3.1 3.2 4.0 5.0 51

11g R2 on Windows 対応 OS 一覧 < 注意 > RAC,ASM を利用する場合には 64bit の OS を選択 対応 OS 一覧 DB11.2 Client11.2 Grid Infra11.2 32bit 64bit 32bit 64bit 32bit 64bit Microsoft Windows Server 2008 R2 64bit - - (*1) Microsoft Windows Server 2008 Microsoft Windows Server 2003 R2 Microsoft Windows Server 2003 Microsoft Windows 7 Microsoft Windows Vista Microsoft Windows XP 32bit - - - 64bit - - (*1) 32bit - - - 64bit - - 32bit - - - 64bit - - 32bit - - - 64bit - - 32bit - - - 64bit - - 32bit - - - 64bit - - *1 ACFS は Windows Server 2003 x64, Windows Server 2003 R2 x64 のみの提供 52

まとめ 文字コードとは 文字セットとエンコーディング Oracle キャラクタ セット データベースのキャラクタ セット データベース キャラクタ セット 各国語キャラクタ セット クライアントのキャラクタ セット NLS_LANG クライアントとサーバーの通信とデータ変換 文字化けの原因 注意すべき文字化け対策 外字の文字化け対策 ~ の文字化け対策 Vista 新文字コード JIS2004 に対応させる方法 53

オラクルクルクルキャンペーン あの Oracle Database Enterprise Edition が超おトク!! Oracle Database のライセンス価格を大幅に抑えて ご導入いただけます 多くのお客様でサーバー使用期間とされる 5 年間にライセンス期間を限定 期間途中で永久ライセンスへ差額移行 5 年後に新規ライセンスを購入し継続利用 5 年後に新システムへデータを移行 Enterprise Edition はここが違う!! 圧倒的なパフォーマンス! データベース管理がカンタン! データベースを止めなくていい! もちろん障害対策も万全! 詳しくはコチラ http://www.oracle.co.jp/campaign/kurukuru/index.html お問い合わせフォーム http://www.oracle.co.jp/inq_pl/inquiry/quest?rid=28 54

IT プロジェクト全般に渡る無償支援サービス Oracle Direct Concierge サービスメニュー システム運用状況の診断 パフォーマンス クリニック サービス システム セキュリティ診断サービス データ管理最適化サービス 運用 経営企画 業務改善計画の作成支援 業務診断サービス BI アセスメントサービス IT 企画 システム企画の作成支援 業務診断サービス BI アセスメントサービス システム構築時の道案内 Access / SQL Server からの移行 MySQL / PostgreSQL からの移行 Oracle Database バージョンアップ支援 Oracle Developer Web アップグレード システム連携アセスメントサービス 構築 設計 RFP/ 提案書の作成支援 BI アセスメントサービス メインフレーム資産活用相談サービス 仮想化アセスメントサービス Oracle Database 構成相談サービス Oracle Database 高可用性クリニック 55

Oracle on Windows 参考資料 コラム ( オラクル都市伝説 ) イベント セミナー情報 etc http://www.oracle.co.jp/campaign/mb_tech/ Windows Server System Center / OTN Japan http://www.oracle.com/technology/global/jp/tech/windows/.net + Oracle Database.NET Developer Center / OTN Japan http://www.oracle.com/technology/global/jp/tech/dotnet/ 意外と簡単!?.NET で Oracle / OTN Japan http://www.oracle.com/technology/global/jp/columns/easy/dotnet/ 56

オラクル都市伝説 / Oracle on Windows http://www.oracle.co.jp/campaign/mb_tech/column/ シーズン1 あのオラクルを安く手に入れる秘密 シーズン2 地獄からの生還本当にあった怖い話 シーズン3 連載開始! Windows 7 & Windows Server 2008 R2に最も相性のいいデータベースを徹底検証 57

オラ 98( キュッパ ) オラ 98 で検索 58

あなたにいちばん近いオラクル Oracle Direct まずはお問合せください Oracle Direct 検索 システムの検討 構築から運用まで ITプロジェクト全般の相談窓口としてご支援いたします システム構成やライセンス / 購入方法などお気軽にお問い合わせ下さい Web 問い合わせフォームフリーダイヤル 専用お問い合わせフォームにてご相談内容を承ります http://www.oracle.co.jp/inq_pl/inquiry/quest?rid=28 フォームの入力には Oracle Direct Seminar 申込時と同じログインが必要となります こちらから詳細確認のお電話を差し上げる場合がありますので ご登録さ れている連絡先が最新のものになっているか ご確認下さい 0120-155-096 月曜 ~ 金曜 9:00~12:00 13:00~18:00 ( 祝日および年末年始除く ) 59

60