Oracle の char 型は何でパディングするものなのか?

今のプロジェクトでは Oracle 10g をデータベースに使用する。

ミーティングで見せられたテーブル定義によると、とあるテーブルを汎用名称マスタとして使用するらしい。種別コード+項目コードで名称を検索する。

ただ、その項目コードの使い方が一意ではあんまりなくて、 char(8) のカラムに対して種別Aは1〜3バイトを使用する、種別Bでは7〜8バイトを使用する、という調子らしい。

わたしは気持ち悪い、と思っただけで黙っていたのだが。

とあるヒトが「あのぉ……これ、何でパディングしてるんですか? 0x20? 0x00? 」と言い出した。

まだ機能仕様をまとめる段階であり、実際のコーディングはおろか詳細設計も始まっていない。

質問されたプロジェクトリーダは即答できなかった。他メンバーが助け舟を出し、結果 0x20 だということで落ち着いた。

char のデータを 0x00 でパディングするケース。残念なことにわたしはまだお目にかかったことがない。 0x00 でパディングする意味とか理由とか可能性とか教えて欲しい。さっぱりわからなかった。