oracle列标题干扰到另一列
我对Oracle 10g数据库headig格式有问题。 我有这个密码oracle列标题干扰到另一列,oracle,oracle10g,Oracle,Oracle10g,我对Oracle 10g数据库headig格式有问题。 我有这个密码 COLUMN id HEADING "Rodné|číslo" FORMAT A10 COLUMN name HEADING "Meno" FORMAT A20 COLUMN surname HEADING "Priezvisko" FORMAT A20 --some select here 列id为char(10)类型,其他列为varchar2(30)类型。结果是这样的 Rodné číslo Meno
COLUMN id HEADING "Rodné|číslo" FORMAT A10
COLUMN name HEADING "Meno" FORMAT A20
COLUMN surname HEADING "Priezvisko" FORMAT A20
--some select here
列id为char(10)类型,其他列为varchar2(30)类型。结果是这样的
Rodné
číslo Meno Priezvisko
---------- -------------------- --------------------
7951051548 Bohdana Filcova
4054207561 Bohumila Kmecova
正如您所见,标题“Meno”干扰第一列,标题“Priezvisko”干扰第二列。我不明白为什么。如何解决此问题?这似乎是一个字符集问题。SQL*Plus支持,因此您正在使用的字符之一可能不在会话的字符集中。如果我设置了NLS_LANG:
export NLS_LANG="ENGLISH_UNITED KINGDOM.WE8ISO8859P1"
Rodné
číslo Meno Priezvisko
---------- -------------------- --------------------
7951051548 Bohdana Filcova
4054207561 Bohumila Kmecova
。。。然后我会有和你一样的行为。(稍微修改,但未通过设置选项卡关闭来修复)。如果我将会话更改为UTF8,则它将正确对齐:
export NLS_LANG="ENGLISH_UNITED KINGDOM.UTF8"
Rodné
číslo Meno Priezvisko
---------- -------------------- --------------------
7951051548 Bohdana Filcova
4054207561 Bohumila Kmecova
顺便说一句,这是11gR2中的问题,因此它不是Oracle 10g的问题;我的数据库字符集是AL32UTF8。另一个有趣的方法是在每个会话中转储值,使用“selectdump('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
据推测,对于前者,它认为输出占用的空间比实际占用的空间多一点,因此它没有完全正确地填充标题
č
似乎是问题所在。是,但不是在或(来源于)。在转储中显示为c4,8d
的Unicode版本中,对于非Unicode版本,它是从c3,84,c2,8d
构建的。你所看到的效果是如何产生的,以及为什么产生的,这超出了我对字符集的理解…这似乎是一个字符集问题。SQL*Plus支持,因此您正在使用的字符之一可能不在会话的字符集中。如果我设置了NLS_LANG:
export NLS_LANG="ENGLISH_UNITED KINGDOM.WE8ISO8859P1"
Rodné
číslo Meno Priezvisko
---------- -------------------- --------------------
7951051548 Bohdana Filcova
4054207561 Bohumila Kmecova
。。。然后我会有和你一样的行为。(稍微修改,但未通过设置选项卡关闭来修复)。如果我将会话更改为UTF8,则它将正确对齐:
export NLS_LANG="ENGLISH_UNITED KINGDOM.UTF8"
Rodné
číslo Meno Priezvisko
---------- -------------------- --------------------
7951051548 Bohdana Filcova
4054207561 Bohumila Kmecova
顺便说一句,这是11gR2中的问题,因此它不是Oracle 10g的问题;我的数据库字符集是AL32UTF8。另一个有趣的方法是在每个会话中转储值,使用“selectdump('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
据推测,对于前者,它认为输出占用的空间比实际占用的空间多一点,因此它没有完全正确地填充标题
č
似乎是问题所在。是,但不是在或(来源于)。在转储中显示为c4,8d
的Unicode版本中,对于非Unicode版本,它是从c3,84,c2,8d
构建的。你所看到的效果是如何产生的,以及为什么产生的,这超出了我对字符集的理解