SQL*Plus - 数字列显示十六进制字符
SQL*Plus - numeric column shows hex characters
正在 SQL*Plus 中做数据透视报告,计算状态为 'ERROR' 的记录数并在结果中遇到十六进制值。它可以使用以下内容在 11g 上重现:
SQL> select 1 error from dual;
ERROR
----------
##########
然后我测试了几个品种:
SQL> select 1 errors from dual;
ERRORS
----------
1
SQL> select 'a' error from dual;
ERROR
-----------------------------------------------------------------
a
SQL> select 'a' errors from dual;
E
-
a
似乎有一个名为 'error' 的列会对 SQL*Plus 中的结果产生奇怪的影响,因为这个问题不会发生在 SQL 开发人员中。有人有解释吗?
除了重命名之外似乎没有解决方法..
这只是一个解决方法,但您可以将 int 转换为 char。
SQL> select cast(1 as char(50)) as error from dual;`
ERROR
---------
1
看起来 ERROR
列的 NUMBER
格式在 SQL*Plus
中默认设置。
ATTRIBUTE
command shows the format of this.
SQL> attribute error
COLUMN ERROR ON
FORMAT A65
word_wrap
所以,让我们清除它。
SQL> column error clear
现在,
SQL> select 12 error from dual;
ERROR
----------
12
完整脚本:
SQL*Plus: Release 11.2.0.3.0 Production on Wed Jun 24 04:26:15 2015
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> attribute error
COLUMN ERROR ON
FORMAT A65
word_wrap
SQL> show numwidth
numwidth 10
SQL> select 12 error from dual;
ERROR
----------
##########
SQL> column error clear
SQL> attribute error
SP2-0046: ATTRIBUTE 'error' not defined
SQL> select 12 error from dual;
ERROR
----------
12
SQL> column error format A10
SQL> select 12 error from dual;
ERROR
----------
##########
正在 SQL*Plus 中做数据透视报告,计算状态为 'ERROR' 的记录数并在结果中遇到十六进制值。它可以使用以下内容在 11g 上重现:
SQL> select 1 error from dual;
ERROR
----------
##########
然后我测试了几个品种:
SQL> select 1 errors from dual;
ERRORS
----------
1
SQL> select 'a' error from dual;
ERROR
-----------------------------------------------------------------
a
SQL> select 'a' errors from dual;
E
-
a
似乎有一个名为 'error' 的列会对 SQL*Plus 中的结果产生奇怪的影响,因为这个问题不会发生在 SQL 开发人员中。有人有解释吗? 除了重命名之外似乎没有解决方法..
这只是一个解决方法,但您可以将 int 转换为 char。
SQL> select cast(1 as char(50)) as error from dual;`
ERROR
---------
1
看起来 ERROR
列的 NUMBER
格式在 SQL*Plus
中默认设置。
ATTRIBUTE
command shows the format of this.
SQL> attribute error
COLUMN ERROR ON
FORMAT A65
word_wrap
所以,让我们清除它。
SQL> column error clear
现在,
SQL> select 12 error from dual;
ERROR
----------
12
完整脚本:
SQL*Plus: Release 11.2.0.3.0 Production on Wed Jun 24 04:26:15 2015
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> attribute error
COLUMN ERROR ON
FORMAT A65
word_wrap
SQL> show numwidth
numwidth 10
SQL> select 12 error from dual;
ERROR
----------
##########
SQL> column error clear
SQL> attribute error
SP2-0046: ATTRIBUTE 'error' not defined
SQL> select 12 error from dual;
ERROR
----------
12
SQL> column error format A10
SQL> select 12 error from dual;
ERROR
----------
##########