728x90
VALIDATE_CONVERSION
구문
VALIDATE_CONVERSION(expr AS type_name
[, fmt [, 'nlsparam' ] ])
목적
VALIDATE_CONVERSION 함수는 expr이 지정한 데이터 유형으로 변환될 수 있는지 여부를 결정합니다. expr을 성공적으로 변환할 수 있는 경우 이 함수는 1을 반환하고, 그렇지 않은 경우 0을 반환합니다. expr이 null로 평가되면 이 함수는 1을 반환합니다. expr을 평가하는 동안 오류가 발생하면 이 함수는 오류를 반환합니다.
expr에는 SQL 식을 지정하십시오. expr에 대한 허용 데이터 유형 및 선택적인 fmt 및 nlsparam 인수의 목적은 type_name으로 지정한 데이터 유형에 따라 다릅니다.
type_name으로는 expr을 어떤 데이터 유형으로 변환하고 싶은지 지정하십시오. 다음과 같은 데이터 유형을 지정할 수 있습니다:
- BINARY_DOUBLE
BINARY_DOUBLE을 지정하는 경우 expr은 CHAR, VARCHAR2, NCHAR 또는 NVARCHAR2 데이터 유형의 문자열 또는 NUMBER, BINARY_FLOAT 또는 BINARY_DOUBLE 유형의 숫자 값으로 평가될 수 있습니다. 선택적인 fmt 및 nlsparam 인수는 TO_BINARY_DOUBLE 함수와 동일한 목적으로 사용됩니다. 자세한 내용은 TO_BINARY_DOUBLE를 참조하십시오. - BINARY_FLOAT
BINARY_FLOAT를 지정하는 경우 expr은 CHAR, VARCHAR2, NCHAR 또는 NVARCHAR2 데이터 유형의 문자열 또는 NUMBER, BINARY_FLOAT 또는 BINARY_DOUBLE 유형의 숫자 값으로 평가될 수 있습니다. 선택적인 fmt 및 nlsparam 인수는 TO_BINARY_FLOAT 함수와 동일한 목적으로 사용됩니다. 자세한 내용은 TO_BINARY_FLOAT를 참조하십시오. - DATE
DATE를 지정하는 경우 expr은 CHAR, VARCHAR2, NCHAR 또는 NVARCHAR2 데이터 유형의 문자열로 평가될 수 있습니다. 선택적인 fmt 및 nlsparam 인수는 TO_DATE 함수와 동일한 목적으로 사용됩니다. 자세한 내용은 TO_DATE를 참조하십시오. - INTERVAL DAY TO SECOND
INTERVAL DAY TO SECOND를 지정하는 경우 expr은 CHAR, VARCHAR2, NCHAR, 또는 NVARCHAR2 데이터 유형의 문자열이어야 하며 SQL 간격 형식 또는 ISO 지속 형식 중 하나의 값을 포함해야 합니다. 선택적인 fmt 및 nlsparam 인수는 이 데이터 유형에 적용되지 않습니다. SQL 간격 형식 및 ISO 지속 형식에 대한 자세한 내용은 TO_DSINTERVAL를 참조하십시오. - INTERVAL YEAR TO MONTH
INTERVAL YEAR TO MONTH를 지정하는 경우 expr은 CHAR, VARCHAR2, NCHAR 또는 NVARCHAR2 데이터 유형의 문자열이어야 하며 SQL 간격 형식 또는 ISO 지속 형식 중 하나의 값을 포함해야 합니다. 선택적인 fmt 및 nlsparam 인수는 이 데이터 유형에 적용되지 않습니다. SQL 간격 형식 및 ISO 지속 형식에 대한 자세한 내용은 TO_YMINTERVAL를 참조하십시오. - NUMBER
NUMBER를 지정하는 경우 expr은 CHAR, VARCHAR2, NCHAR, NVARCHAR2 데이터 유형의 문자열 또는 NUMBER, BINARY_FLOAT, BINARY_DOUBLE 유형의 숫자 값으로 평가될 수 있습니다. 선택적인 fmt 및 nlsparam 인수는 TO_NUMBER 함수와 동일한 목적으로 사용됩니다. 자세한 내용은 TO_NUMBER를 참조하십시오.
expr이 NUMBER 유형의 값인 경우 VALIDATE_CONVERSION 함수는 expr이 유효한 숫자 값인지 확인합니다. expr이 유효한 숫자 값이 아닌 경우 함수는 0을 반환합니다. 이를 통해 데이터베이스에서 손상된 숫자 값을 식별할 수 있습니다. - TIMESTAMP
TIMESTAMP를 지정하는 경우 expr은 CHAR, VARCHAR2, NCHAR, 또는 NVARCHAR2 데이터 유형의 문자열로 평가될 수 있습니다. 선택적인 fmt 및 nlsparam 인수는 TO_TIMESTAMP 함수와 동일한 목적으로 사용됩니다. fmt을 생략하는 경우 expr은 TIMESTAMP 데이터 유형의 기본 형식에 있어야 하며 이 형식은 NLS_TIMESTAMP_FORMAT 초기화 매개변수에 의해 결정됩니다. 자세한 내용은 TO_TIMESTAMP를 참조하십시오. - TIMESTAMP WITH TIME ZONE
TIMESTAMP WITH TIME ZONE를 지정하는 경우 expr은 CHAR, VARCHAR2, NCHAR, 또는 NVARCHAR2 데이터 유형의 문자열로 평가될 수 있습니다. 선택적인 fmt 및 nlsparam 인수는 TO_TIMESTAMP_TZ 함수와 동일한 목적으로 사용됩니다. fmt을 생략하는 경우 expr은 TIMESTAMP WITH TIME ZONE 데이터 유형의 기본 형식에 있어야 하며 이 형식은 NLS_TIMESTAMP_TZ_FORMAT 초기화 매개변수에 의해 결정됩니다. 자세한 내용은 TO_TIMESTAMP_TZ를 참조하십시오. - TIMESTAMP WITH LOCAL TIME ZONE
TIMESTAMP를 지정하는 경우 expr은 CHAR, VARCHAR2, NCHAR, 또는 NVARCHAR2 데이터 유형의 문자열로 평가될 수 있습니다. 선택적인 fmt 및 nlsparam 인수는 TO_TIMESTAMP 함수와 동일한 목적으로 사용됩니다. fmt을 생략하는 경우 expr은 TIMESTAMP 데이터 유형의 기본 형식에 있어야 하며 이 형식은 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 함수 문서
반응형
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] VAR_POP - 숫자 집합의 모집단 분산 반환 (0) | 2023.09.04 |
---|---|
[오라클 레퍼런스 함수] VALUE - 테이블의 객체 인스턴스(object instances) 반환 (0) | 2023.09.04 |
[오라클 레퍼런스 함수] USERENV - 현재 세션 정보 반환 (0) | 2023.09.04 |
[오라클 레퍼런스 함수] USER - 세션 사용자(로그인한 사용자) 이름 반환 (0) | 2023.09.04 |
[오라클 레퍼런스 함수] UPPER - 문자열을 대문자로 변환 (0) | 2023.09.04 |
댓글