| ||||||||||
| 前のページ 1 2 3 次のページ | ||||||||||
| 事前実験1:「n」が付いていないデータ型でやってみる | ||||||||||
では実際にJIS X 0213:2004で追加された文字を含めて、データベースに文字列を格納してみよう。JIS X 0213:2004で追加された文字は、サロゲートペアで扱うものとそうでないものの2種類を用意する。これらをInsert文で格納したときにエラーにならず、それを取り出して問題なく元通りの文字列が表示されれば合格だ。 varchar型の列を持つ表を下記のコマンドで作成する。 create table unicode_test(charcol varchar(10));JIS X 0213:2004で追加された文字列とそうでない文字列を表に挿入するために下記のSQLを実行する。 実行結果は特にエラーなしに格納できる。 1 rows inserted格納したデータを取り出すために下記SQLを実行する。 select * from unicode_test;その結果は下記のようなものであった。 charcol このように、先頭に「n」が付かないデータ型へ格納した文字がJIS X 0213:2004の場合、実際には正しく格納できていないために取り出すと元の文字が表示されない。 | ||||||||||
| 事前実験2:「n」が付いたデータ型でNプレフィックスをつけないで実行する | ||||||||||
では次に、「n」が付いたデータ型でNプレフィックスをつけないで実行してみよう。さきほどの実験は、失敗するとわかっていてやったようなものだ。Unicodeを扱えるのは、先頭に「n」がついたデータ型に限られるとわかった上でのことだからである。今度は「n」がついたデータ型で表を作り、同じように実験してみよう。 nvarchar型の列を持つ表を下記SQLで作成する。 create table unicode_test(ncharcol nvarchar(10));JIS X 0213:2004で追加された文字列とそうでない文字列を表に挿入するために下記SQLを実行する。 その結果、特にエラーなしに格納できる。 1 rows inserted格納したデータを取り出すためにSQLを実行する。 select * from unicode_test;その結果、格納時にエラーは起きなくても、データを取り出すと正しく格納できていなかったことがわかる。 ncharcol | ||||||||||
| 前のページ 1 2 3 次のページ | ||||||||||
| ||||||||||
| ||||||||||
| ||||||||||


