Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
oracle列标题干扰到另一列_Oracle_Oracle10g - Fatal编程技术网

oracle列标题干扰到另一列

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

我对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           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
构建的。你所看到的效果是如何产生的,以及为什么产生的,这超出了我对字符集的理解