>>궁금이 님께서 쓰시길<<
:: varchar2형인 필드에 들어가 있는 데이타가 전부 숫자인지
:: 아닌지 알수 있는 방법이 없습니까?
::
:: 함수나 아님 어떻게 채크해야하는지 ...
::
:: 물론 문자열을 한문자씩 잘라내서 아스키코드를 검사하면 될거같지만
:: 무식한 방법같애서 혹시 간단한 방법이 없을까요?
::
:: 부탁드립니다.
만약 영문이라면
select decode(upper(column_name),lower(column_name),'숫자','문자')
from table_name;
도 가능하겠군요.
그러나 만약 한글이라면
select decode(upper(column_name),lower(column_name),
decode(length(column_name),lengthb(column_name),'숫자','문자'),
'문자')
from table_name;
또는
select case when upper(column_name) = lower(column_name) then
case when length(column_name) = lengthb(column_name) then '숫자'
else '문자' end
else '문자' end
from table_name;
이렇게 쓰셔야 할겁니다.
참 lengthb은 NLS_CHARACTERSET이 KO16KSC5601일경우에 해당합니다.
US7ASCII이면 length와 똑같은 값이나오니 주의하세요.
|