Oracleの固定長文字列型「CHAR」ですが、サイズ指定にはバイトと文字数の両方が使えるんですね。しらんかった。テーブルの宣言時に、サイズ値の後ろに「BYTE」とつけるか「CHAR」とつけるかの違いだそうです。
詳しくはここで説明してくれてますね。
- Difference between BYTE and CHAR in column datatypes(stackoverflow)
- http://stackoverflow.com/questions/81448/difference-between-byte-and-char-in-column-datatypes
ここでの例はVARCHAR2が出されていますが、定義時にサイズ値に続いてCHARとつけた場合「その文字を1文字保存するのに何バイト必要だろうと、文字数で数えられる」とのこと。固定長文字列だからバイト、という固定の考え方、まずいですね、特に共通ライブラリなどを設計する際には。