SnowConvert AI - Oracle - 리터럴¶
리터럴과 상수 값이라는 용어는 동의어이며 고정 데이터 값을 나타냅니다.\ (Oracle SQL 언어 참조 리터럴)
간격 리터럴¶
현재 시나리오에서는 간격 리터럴이 지원되지 않음
설명¶
Snowflake Intervals는 산술 작업에만 사용할 수 있습니다. 다른 시나리오에서 사용되는 간격은 지원되지 않습니다.
코드 예시¶
Oracle¶
Snowflake¶
Known Issues¶
문제가 발견되지 않았습니다.
간격 유형 및 날짜 유형¶
간격 유형과 날짜 유형 간의 연산이 지원되지 않음
설명¶
INTERVAL YEAR TO MONTH 및 INTERVAL DAY TO SECOND는 지원되는 데이터 타입이 아니므로 VARCHAR(20)로 변환됩니다. 따라서 날짜 유형 과 원본 간격 유형 열 간의 모든 산술 연산은 지원되지 않습니다.
또한, 간격 유형과 날짜 유형 간의 연산(이 순서대로)은 Snowflake에서 지원되지 않으며, 이러한 작업에서도 이 EWI를 사용합니다.
코드 예시¶
Oracle¶
Snowflake¶
권장 사항¶
UDF 를 구현하여 Oracle 동작을 시뮬레이션합니다.
마이그레이션 중에 열에 저장된 이미 변환된 값을 추출하고, 가능한 경우 Snowflake Interval Constant로 사용합니다.
추가 지원이 필요한 경우 snowconvert-support@snowflake.com으로 이메일을 보내주세요.
관련 EWIs¶
SSC-EWI-0036: 데이터 타입이 다른 데이터 타입으로 변환되었습니다.
SSC-EWI-OR0095: 간격 유형과 날짜 유형 간의 연산은 지원되지 않습니다.
SSC-FDM-OR0042: 타임스탬프로 변환된 날짜 유형의 동작이 다릅니다.
텍스트 리터럴¶
설명¶
이 참조의 다른 부분에 있는 식, 조건, SQL 함수 및 SQL 문의 구문에
string이 표시될 때마다 텍스트 리터럴 표기법을 사용하여 값을 지정합니다.
샘플 소스 패턴¶
빈 문자열 (‘’)¶
빈 문자열은 Oracle의 _NULL_과 동일하므로 Snowflake에서 동작을 에뮬레이션하기 위해 빈 문자열은 리터럴이 프로시저 내에서 사용되는지 여부에 따라 NULL 또는 _정의되지 않음_으로 변환됩니다.
Oracle¶
결과¶
UPPER(‘’) |
|---|
Snowflake¶
결과¶
UPPER(NULL) |
|---|
저장 프로시저의 빈 문자열¶
Oracle¶
결과¶
COL1 |
COL2 |
|---|---|
hello |
Snowflake¶
결과¶
COL1 |
COL2 |
|---|---|
hello |
기본 제공 함수의 빈 문자열¶
경고
기능적 동등성을 유지하기 위해 빈 문자열이 REPLACE 및 CONCAT 함수의 인자로 사용되는 경우에는 변환이 적용되지 않습니다.
Oracle¶
결과¶
REPLACE(‘HELLOWORLD’,’’,’L’) |
CONCAT(‘A’,’’) |
|---|---|
Hello world |
A |
Snowflake¶
결과¶
REPLACE(‘HELLO WORLD’, ‘’, ‘L’) |
CONCAT(‘A’,’’) |
|---|---|
Hello world |
A |
참고
이러한 경우 빈 문자열을 NULL 로 대체하면 쿼리 결과가 달라집니다.
Known Issues¶
문제가 발견되지 않았습니다.
관련 EWIs¶
관련 EWIs 없음.