這似乎是一個字符集問題。 SQL * Plus支持globalisation,因此您使用的其中一個字符可能不在您會話的字符集中。如果我設置我的NLS_LANG:
export NLS_LANG="ENGLISH_UNITED KINGDOM.WE8ISO8859P1"
Rodné
číslo Meno Priezvisko
---------- -------------------- --------------------
7951051548 Bohdana Filcova
4054207561 Bohumila Kmecova
...然後我得到相同的行爲,你做。 (它稍微修改,但不是由set tab off
修復)。如果我更改了會議UTF8然後對齊正確:
export NLS_LANG="ENGLISH_UNITED KINGDOM.UTF8"
Rodné
číslo Meno Priezvisko
---------- -------------------- --------------------
7951051548 Bohdana Filcova
4054207561 Bohumila Kmecova
這是在11gR2中,順便說一下,所以它不是一個Oracle 10g的問題;我的數據庫字符集是AL32UTF8。同樣有趣的是,在每次會議中轉儲價值,'選擇轉儲'('Rodné|číslo',1016)from dual';與WE8ISO8859P1:
DUMP('RODNé|číSLO',1016)
--------------------------------------------------------------------------------
Typ=96 Len=20 CharacterSet=AL32UTF8: 52,6f,64,6e,c3,83,c2,a9,7c,c3,84,c2,8d,c3,8
3,c2,ad,73,6c,6f
...與UTF8:
DUMP('RODNÉ|ČÍSLO',1016)
--------------------------------------------------------------------------------
Typ=96 Len=14 CharacterSet=AL32UTF8: 52,6f,64,6e,c3,a9,7c,c4,8d,c3,ad,73,6c,6f
想必與前它認爲輸出佔用更多的空間比實際的,所以它是不填充標題非常正確。
č
似乎是問題所在。它是defined in Unicode,但不是在WE8ISO8859P1或WE8MSWIN1252(源自here)。在轉儲中顯示的Unicode版本爲c4,8d
,而對於非Unicode版本,則從c3,84,c2,8d
開始構建。相當多的以及爲什麼導致你看到的效果超出了我對字符集的理解......
謝謝,它的工作原理就像你寫的。 – CoCumis 2013-05-13 15:13:25