最近、RDB上の文字列は、nvarcharで画一的に規定して使っています。それで不具合に直面したことがないので、ユニコードがそれだけ汎用性が高いということか。
DB2のTableを見ることがあって、戸惑ってしまいました。nvarcharとかが見つからない。データベース作成時に"USING CODESET"で指定するらしい。
他のRDBみたいに、型規定での使い分け、は無理のようです。
1byte文字系はchar()で、2byte文字系はGraphic() となっていて、半角全角を区別する文化が根強く残っています。
当初、2byte文字をGraphicと見なしていたのでしょうが、名前を是正するチャンスはなかったのでしょうか。このままだと、ずっとGraphic()の名前のまま続きそうです。
DB2は、EBCDICコード系の分野もあるので、Shift in/out 付きの文字列を扱う場面もあるので、他のRDBとは違う事情もあります。
でも、graphic()のサイズを graphic(1~174) で規定してかつ、半角全角混在して代入したら、char()との扱いの差はどうなのか?
動作確認できる環境がないので、なんとも言えないのですが、データ型表を眺めているだけでも、いくつか疑問が沸いてきます。書籍も少ないですしね。
0 件のコメント:
コメントを投稿