2015-06-24 28 views
7

sonuçlarında statü 'HATA' ve karşılaşma onaltılık değerlerle kayıt sayısını sayarak, SQL * Plus pivot raporu yapıyordum altıgen karakterleri gösterir. Bu kullanarak 11g yeniden olabilir şunlardır: SQL * Plus - sayısal sütunun

SQL> select 1 error from dual; 

    ERROR 
---------- 
########## 

Sonra birkaç çeşitliliği ile test:

SQL> select 1 errors from dual; 

    ERRORS 
---------- 
     1 

SQL> select 'a' error from dual; 

ERROR 
----------------------------------------------------------------- 
a 

SQL> select 'a' errors from dual; 

E 
- 
a 

'hatası' adlı bir sütun SQL sizin sonuca garip maddeleri yok olması gibi görünüyor * Ayrıca bu sorun SQL geliştiricisinde gerçekleşmez. Herkesin bir açıklaması var mı? Orada Sadece bir workarround olduğunu ..

+0

O SQL * Plus, bir cilvesi (böcek) olarak görünmektedir. Bu nedenle, sütunu yeniden adlandırın veya bir dizeye yayınlayın. – APC

cevap

2

SQL*Plus varsayılan olarak ayarlanır sütunda ERROR için NUMBER formatında benziyor.

ATTRIBUTE komut bu biçimini gösterir.

SQL> attribute error 
COLUMN ERROR ON 
FORMAT A65 
word_wrap 

Yani, açıkça izin verir. Şimdi

SQL> column error clear 

,

SQL> select 12 error from dual; 

    ERROR 
---------- 
     12 

Tam Senaryo:

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 
---------- 
########## 
1

yeniden adlandırarak dışında hiçbir çözüm gibi görünüyor, ancak char olarak da int yayınlayabilirsiniz.

SQL> select cast(1 as char(50)) as error from dual;` 

ERROR 
--------- 
1 
İlgili konular