반응형
Oracle의 to_char () 함수가 공백을 추가하는 이유는 무엇입니까?
Oracle의 to_char()
기능이 공백을 추가하는 이유는 무엇 입니까?
select length('012'),
length(to_char('012')),
length(to_char('12', '000'))
from dual;
3, 3, 4
사용중인 형식 마스크는 고정 너비이며 빼기 기호를 허용합니다.
추가 선행 공백은 잠재적 인 마이너스 기호를위한 것입니다. 공간을 제거하려면 FM을 다음 형식으로 사용할 수 있습니다.
SQL> select to_char(12,'FM000') from dual;
TO_C
----
012
그런데 to_char는 NUMBER 인수를 취합니다. to_char ( '012')는 암시 적으로 to_char (to_number ( '012')) = to_char (12)로 변환됩니다.
주어진 답을 더 명확하게하려면 :
select '['||to_char(12, '000')||']',
'['||to_char(-12, '000')||']',
'['||to_char(12,'FM000')||']'
from dual
[ 012] [-012] [012]
'fm'구문을 사용할 때 0을 사용하여 지정하지 않는 한 소수점 이하 자릿수 뒤에 값이 포함되지 않습니다. 예를 들면 :
SELECT TO_CHAR(12345, 'fm99,999.00') FROM dual
반환 : '12, 345.00 '
SELECT TO_CHAR(12345, 'fm99,999.99') FROM dual
반환 : '12, 345. '
보시다시피 소수 자리 뒤에 두 개의 0이 예상되는 경우 문제가 될 수 있습니다 (예 : 수수료 보고서).
참조 URL : https://stackoverflow.com/questions/240182/why-is-oracles-to-char-function-adding-spaces
반응형
'program tip' 카테고리의 다른 글
RecyclerView가 onCreateViewHolder 또는 onBindView를 호출하지 않습니다. (0) | 2021.01.05 |
---|---|
Ruby에서 기본 브라우저 열기 (0) | 2021.01.05 |
curl_init () 함수가 작동하지 않습니다. (0) | 2021.01.05 |
JavaScript에서 문자열의 마지막 부분을 얻는 방법은 무엇입니까? (0) | 2021.01.05 |
Bootstrap을 사용하여 헤더의 맨 오른쪽에 버튼 그룹 배치 (0) | 2021.01.05 |