본문 바로가기

[오라클 레퍼런스 함수] VALIDATE_CONVERSION - 지정한 데이터 유형으로 변환 가능 여부(0 또는 1) 확인

by ㅇㅍㅍ 2023. 9. 4.
[오라클 레퍼런스 함수] VALIDATE_CONVERSION - 지정한 데이터 유형으로 변환 가능 여부(0 또는 1) 확인
728x90

 

VALIDATE_CONVERSION

 

구문

VALIDATE_CONVERSION(expr AS type_name
  [, fmt [, 'nlsparam' ] ])

 

목적

VALIDATE_CONVERSION 함수는 expr이 지정한 데이터 유형으로 변환될 수 있는지 여부를 결정합니다. expr을 성공적으로 변환할 수 있는 경우 이 함수는 1을 반환하고, 그렇지 않은 경우 0을 반환합니다. expr이 null로 평가되면 이 함수는 1을 반환합니다. expr을 평가하는 동안 오류가 발생하면 이 함수는 오류를 반환합니다.

expr에는 SQL 식을 지정하십시오. expr에 대한 허용 데이터 유형 및 선택적인 fmtnlsparam 인수의 목적은 type_name으로 지정한 데이터 유형에 따라 다릅니다.

type_name으로는 expr을 어떤 데이터 유형으로 변환하고 싶은지 지정하십시오. 다음과 같은 데이터 유형을 지정할 수 있습니다:

 

  • BINARY_DOUBLE
    BINARY_DOUBLE을 지정하는 경우 exprCHAR, VARCHAR2, NCHAR 또는 NVARCHAR2 데이터 유형의 문자열 또는 NUMBER, BINARY_FLOAT 또는 BINARY_DOUBLE 유형의 숫자 값으로 평가될 수 있습니다. 선택적인 fmtnlsparam 인수는 TO_BINARY_DOUBLE 함수와 동일한 목적으로 사용됩니다. 자세한 내용은 TO_BINARY_DOUBLE를 참조하십시오.

  • BINARY_FLOAT
    BINARY_FLOAT를 지정하는 경우 exprCHAR, VARCHAR2, NCHAR 또는 NVARCHAR2 데이터 유형의 문자열 또는 NUMBER, BINARY_FLOAT 또는 BINARY_DOUBLE 유형의 숫자 값으로 평가될 수 있습니다. 선택적인 fmtnlsparam 인수는 TO_BINARY_FLOAT 함수와 동일한 목적으로 사용됩니다. 자세한 내용은 TO_BINARY_FLOAT를 참조하십시오.

  • DATE
    DATE를 지정하는 경우 exprCHAR, VARCHAR2, NCHAR 또는 NVARCHAR2 데이터 유형의 문자열로 평가될 수 있습니다. 선택적인 fmtnlsparam 인수는 TO_DATE 함수와 동일한 목적으로 사용됩니다. 자세한 내용은 TO_DATE를 참조하십시오.

  • INTERVAL DAY TO SECOND
    INTERVAL DAY TO SECOND를 지정하는 경우 exprCHAR, VARCHAR2, NCHAR, 또는 NVARCHAR2 데이터 유형의 문자열이어야 하며 SQL 간격 형식 또는 ISO 지속 형식 중 하나의 값을 포함해야 합니다. 선택적인 fmtnlsparam 인수는 이 데이터 유형에 적용되지 않습니다. SQL 간격 형식 및 ISO 지속 형식에 대한 자세한 내용은 TO_DSINTERVAL를 참조하십시오.

  • INTERVAL YEAR TO MONTH
    INTERVAL YEAR TO MONTH를 지정하는 경우 exprCHAR, VARCHAR2, NCHAR 또는 NVARCHAR2 데이터 유형의 문자열이어야 하며 SQL 간격 형식 또는 ISO 지속 형식 중 하나의 값을 포함해야 합니다. 선택적인 fmtnlsparam 인수는 이 데이터 유형에 적용되지 않습니다. SQL 간격 형식 및 ISO 지속 형식에 대한 자세한 내용은 TO_YMINTERVAL를 참조하십시오.

  • NUMBER
    NUMBER를 지정하는 경우 exprCHAR, VARCHAR2, NCHAR, NVARCHAR2 데이터 유형의 문자열 또는 NUMBER, BINARY_FLOAT, BINARY_DOUBLE 유형의 숫자 값으로 평가될 수 있습니다. 선택적인 fmtnlsparam 인수는 TO_NUMBER 함수와 동일한 목적으로 사용됩니다. 자세한 내용은 TO_NUMBER를 참조하십시오.

    exprNUMBER 유형의 값인 경우 VALIDATE_CONVERSION 함수는 expr이 유효한 숫자 값인지 확인합니다. expr이 유효한 숫자 값이 아닌 경우 함수는 0을 반환합니다. 이를 통해 데이터베이스에서 손상된 숫자 값을 식별할 수 있습니다.

  • TIMESTAMP
    TIMESTAMP를 지정하는 경우 exprCHAR, VARCHAR2, NCHAR, 또는 NVARCHAR2 데이터 유형의 문자열로 평가될 수 있습니다. 선택적인 fmtnlsparam 인수는 TO_TIMESTAMP 함수와 동일한 목적으로 사용됩니다. fmt을 생략하는 경우 exprTIMESTAMP 데이터 유형의 기본 형식에 있어야 하며 이 형식은 NLS_TIMESTAMP_FORMAT 초기화 매개변수에 의해 결정됩니다. 자세한 내용은 TO_TIMESTAMP를 참조하십시오.

  • TIMESTAMP WITH TIME ZONE
    TIMESTAMP WITH TIME ZONE를 지정하는 경우 exprCHAR, VARCHAR2, NCHAR, 또는 NVARCHAR2 데이터 유형의 문자열로 평가될 수 있습니다. 선택적인 fmtnlsparam 인수는 TO_TIMESTAMP_TZ 함수와 동일한 목적으로 사용됩니다. fmt을 생략하는 경우 exprTIMESTAMP WITH TIME ZONE 데이터 유형의 기본 형식에 있어야 하며 이 형식은 NLS_TIMESTAMP_TZ_FORMAT 초기화 매개변수에 의해 결정됩니다. 자세한 내용은 TO_TIMESTAMP_TZ를 참조하십시오.

  • TIMESTAMP WITH LOCAL TIME ZONE
    TIMESTAMP를 지정하는 경우 exprCHAR, VARCHAR2, NCHAR, 또는 NVARCHAR2 데이터 유형의 문자열로 평가될 수 있습니다. 선택적인 fmtnlsparam 인수는 TO_TIMESTAMP 함수와 동일한 목적으로 사용됩니다. fmt을 생략하는 경우 exprTIMESTAMP 데이터 유형의 기본 형식에 있어야 하며 이 형식은 NLS_TIMESTAMP_FORMAT 초기화 매개변수에 의해 결정됩니다. 자세한 내용은 TO_TIMESTAMP를 참조하십시오.

 

예제

다음 각 문장에서 지정된 값은 지정된 데이터 유형으로 성공적으로 변환될 수 있습니다. 따라서 이러한 각 문장은 값 1을 반환합니다.

SELECT VALIDATE_CONVERSION(1000 AS BINARY_DOUBLE)
  FROM DUAL;

SELECT VALIDATE_CONVERSION('1234.56' AS BINARY_FLOAT)
  FROM DUAL;

SELECT VALIDATE_CONVERSION('July 20, 1969, 20:18' AS DATE,
    'Month dd, YYYY, HH24:MI', 'NLS_DATE_LANGUAGE = American')
  FROM DUAL;

SELECT VALIDATE_CONVERSION('200 00:00:00' AS INTERVAL DAY TO SECOND)
  FROM DUAL;

SELECT VALIDATE_CONVERSION('P1Y2M' AS INTERVAL YEAR TO MONTH)
  FROM DUAL;

SELECT VALIDATE_CONVERSION('$100,00' AS NUMBER,
    '$999D99', 'NLS_NUMERIC_CHARACTERS = '',.''')
  FROM DUAL;

SELECT VALIDATE_CONVERSION('29-Jan-02 17:24:00' AS TIMESTAMP,
    'DD-MON-YY HH24:MI:SS')
  FROM DUAL;

SELECT VALIDATE_CONVERSION('1999-12-01 11:00:00 -8:00'
    AS TIMESTAMP WITH TIME ZONE, 'YYYY-MM-DD HH:MI:SS TZH:TZM')
  FROM DUAL;

SELECT VALIDATE_CONVERSION('11-May-16 17:30:00'
    AS TIMESTAMP WITH LOCAL TIME ZONE, 'DD-MON-YY HH24:MI:SS')
  FROM DUAL;

 

다음 문장은 지정된 값이 BINARY_FLOAT로 변환될 수 없기 때문에 0을 반환합니다.

SELECT VALIDATE_CONVERSION('$29.99' AS BINARY_FLOAT)
  FROM DUAL;

 

다음 문장은 지정된 숫자 형식 모델이 값을 BINARY_FLOAT로 변환할 수 있도록 허용하기 때문에 1을 반환합니다.

SELECT VALIDATE_CONVERSION('$29.99' AS BINARY_FLOAT, '$99D99')
  FROM DUAL;

 


출처: 오라클 레퍼런스

원문 링크: Oracle VALIDATE_CONVERSION 함수 문서

 

반응형

댓글