2013-06-24 8 views
0

나는 좋은 방법으로 spool 출력을 시도하므로, 모든 VARCHAR2 컬럼을 a5로 포맷하고있다. 그러나 문제가되는 열은 NUMBER (2) 유형이 SLOTNUM이고 NUMBER (5,2) 유형이 FEEADJUSTMENT입니다. 내 코드는 다음과 같습니다Oracle에서 NUMBER 열의 형식을 지정하는 방법은 무엇입니까?

column SLOTNUM format 999; 
column FEEADJUSTMENT format 999.9; 
......... 
column [other VARCHAR2]  format a5; 
select * from allTables; 

결과는 다음과 같습니다

SLOTNUM DATEV ACTUA NOTES FEEADJUSTMENT TREAT NAME           
------- ----- ----- ----- ------------- ----- -----           
    12 19-JU 19-ju Treat   2.5 12345 Flu            
     N-13 n-13 ment    6  Shot          
       00:00 succe                     
       :00 ssful                      
        l                      

    15 20-JU 20-ju Appar   5.5 12345 Flu             
     N-13 n-13 atus    6  Shot               
       02:00 broke                      
       :00                        

FEEADJUSTMENT가 필요한 것보다 더 많은 공간을하고있다. format 999.9FEEADJUSTMENT 열을 자르지 않는 이유는 무엇입니까? 이와

답변

1

는 열 헤더의 길이를 사용하고 있기 때문에, as the documentation는 말한다 :

숫자 열의 폭이 제목의 폭이나 너비 동일 FORMAT과 표시를위한 하나의 공간 중 큰 것.

당신은 짧은 이름을 가진 열 별칭을 할 수

select slotnum as slotn, ... 

또한 문자열로 취급 할 수,하지만 당신은 여전히 ​​정말 별칭 필요할 것 :

select to_char(slotnum, 'FM9999') as slotn, ... 

당신을 별칭은 slotnum이고 선호하는 경우 format a5을 사용하지만 덜 명확 할 것입니다.

모든 것을 강제로 '좋음'으로 지정하는 것은 확실하지 않습니다. 특히 열 배치를 강요하는 것보다 lomger 값이 길 때 좋습니다. 맛의 문제는, 나는 ...

+0

아,이 규칙은 NUMBER에 적용되지만 VARCHAR2에는 적용되지 않습니다. 그것? 고맙습니다!!! – CHEBURASHKA

+0

그래, 내가 너무 많은 열을 가지고 있기 때문에 ... 나는'a5'에서 시작하기 만하면 칼럼을 적절하게 조정할 것이다. 나는 그것이 좋게보기를 바란다. – CHEBURASHKA

1

형식 :

column SLOTNUM format a3; 
column FEEADJUSTMENT format a5; 
+0

고맙습니다. +1. 그러나 이것은 작동하지 않을 것입니다, ##### 줄 것입니다. 이것을 확인하십시오 : http://stackoverflow.com/questions/17284092/why-do-i-get-in-the-number-column-after-format-oracle – CHEBURASHKA

관련 문제