テーブル内の生データが変更されていることは非常に疑わしいです。あなたのコメントの中には、SQLPlus 以外のツールやアプリケーションを使用してデータを表示および処理していることを示唆しているものがあるため、何らかの方法でデータを誤って処理していないかどうかを確認する必要があると思います。
これは、ストレート SQLPlus で行ったことを再現しようとした例です。null バイトは既存のデータに追加されません。
SQL> create table foo (bar varchar2(8));
Table created.
SQL> insert into foo
2 select lpad(to_char(level),level)
3 from dual
4 connect by level <=8;
8 rows created.
SQL> commit;
Commit complete.
SQL> select bar,dump(bar) from foo;
BAR
--------
DUMP(BAR)
--------------------------------------------------------------------------------
1
Typ=1 Len=1: 49
2
Typ=1 Len=2: 32,50
3
Typ=1 Len=3: 32,32,51
4
Typ=1 Len=4: 32,32,32,52
5
Typ=1 Len=5: 32,32,32,32,53
6
Typ=1 Len=6: 32,32,32,32,32,54
7
Typ=1 Len=7: 32,32,32,32,32,32,55
8
Typ=1 Len=8: 32,32,32,32,32,32,32,56
8 rows selected.
SQL> alter table foo modify (bar varchar2(16));
Table altered.
SQL> select bar,dump(bar) from foo;
BAR
----------------
DUMP(BAR)
--------------------------------------------------------------------------------
1
Typ=1 Len=1: 49
2
Typ=1 Len=2: 32,50
3
Typ=1 Len=3: 32,32,51
4
Typ=1 Len=4: 32,32,32,52
5
Typ=1 Len=5: 32,32,32,32,53
6
Typ=1 Len=6: 32,32,32,32,32,54
7
Typ=1 Len=7: 32,32,32,32,32,32,55
8
Typ=1 Len=8: 32,32,32,32,32,32,32,56