HPL/SQL - Oracle PL/SQL 호환성
HPL/SQL - Oracle PL/SQL 호환성 (Oracle PL/SQL Compatibility)
HPL/SQL은 Oracle의 PL/SQL 및 SQL 문법과의 호환성을 제공해요. Oracle에서 익숙한 문법들을 Hive에서도 그대로 사용할 수 있는지가 핵심이에요.
출처: 문서
본문
HPL/SQL이 Oracle PL/SQL 및 SQL과 갖는 호환성을 설명합니다.
언어 요소 (Language Elements)
HPL/SQL이 지원하는 Oracle PL/SQL 언어 요소:
| 기능 | 설명 | 지원 | 버전 |
|---|---|---|---|
| TRUE and FALSE | 불리언 리터럴 | Yes | 0.3.13 |
– comment |
한 줄 주석 | Yes | 0.1 |
/* comment */ |
여러 줄 주석 | Yes | 0.1 |
| NOT NULL | 변수 제약 | Parser only | 0.3.13 |
| CONSTANT | 상수 변수 | Yes | 0.3.13 |
:= or DEFAULT |
기본값 절 | Yes | 0.1 |
| %TYPE | 데이터 타입 속성 | Yes | 0.3.13 |
| SUBTYPE subtype IS type | 서브타입 | No |
데이터 타입 및 선언 (Data Types and Declarations)
HPL/SQL이 지원하는 Oracle PL/SQL 데이터 타입:
| 데이터 타입 | 설명 | 지원 | 버전 |
|---|---|---|---|
| BIGINT | 64비트 정수 | Yes | 0.3.13 |
| BINARY_DOUBLE | 배정밀도 부동소수점 | Yes | 0.3.13 |
| BINARY_FLOAT | 단정밀도 부동소수점 | Yes | 0.3.13 |
| BINARY_INTEGER | 32비트 정수 | Yes | 0.3.13 |
| BLOB | 이진 긴 데이터 | No | |
| BOOLEAN | 참 또는 거짓 | Yes | 0.3.13 |
| CHAR(n) | 고정 길이 문자열 | Yes | 0.1 |
| CHARACTER(n) | 고정 길이 문자열 | Yes | 0.1 |
| CLOB | 문자 긴 데이터 | No | |
| DECIMAL(p,s) | 고정 소수점 숫자 | Yes | 0.1 |
| DATE | 날짜 (년, 월, 일 및 시간) | Yes | 0.1 |
| INT | 32비트 정수 | Yes | 0.1 |
| INTEGER | 32비트 정수 | Yes | 0.1 |
| LONG | 긴 문자열 | No | |
| LONG RAW | 긴 이진 문자열 | No | |
| NATURAL | 음수가 아닌 32비트 정수 | No | |
| NATURALN | 음수가 아니고 NULL이 아닌 32비트 정수 | No | |
| NCHAR(n) | 고정 길이 문자열 | Yes | 0.1 |
| NCLOB | 문자 긴 데이터 | No | |
| NVARCHAR(n) | 가변 길이 문자열 | Yes | 0.1 |
| NUMBER(p,s) | 고정 소수점 숫자 | Yes | 0.1 |
| PLS_INTEGER | 32비트 정수 | Yes | 0.3.13 |
| POSITIVE | 양의 32비트 정수 | No | |
| POSITIVEN | 양수이고 NULL이 아닌 32비트 정수 | No | |
| RAW | 이진 데이터 | No | |
| ROWID | 행 주소 | No | |
| SIGNTYPE | -1, 0 또는 1 | No | |
| SIMPLE_DOUBLE | 배정밀도 부동소수점 | Yes | 0.3.13 |
| SIMPLE_FLOAT | 단정밀도 부동소수점 | Yes | 0.3.13 |
| SIMPLE_INTEGER | 32비트 정수 | Yes | 0.3.13 |
| SMALLINT | 16비트 정수 | Yes | 0.1 |
| SYS_REFCURSOR | 커서 변수 | Yes | 0.3.11 |
| TIMESTAMP | 날짜와 시간 | Yes | 0.3.7 |
| VARCHAR(n) | 가변 길이 문자열 | Yes | 0.1 |
| VARCHAR2(n) | 가변 길이 문자열 | Yes | 0.1 |
| UROWID | 행 주소 | No | |
| UTL_FILE.FILE_TYPE | 파일 핸들 | Yes | 0.1 |
연산자와 표현식 (Operators and Expressions)
HPL/SQL이 지원하는 Oracle PL/SQL 연산자와 표현식:
| 연산자 | 설명 | 지원 | 버전 |
|---|---|---|---|
|| 연산자 |
문자열 연결 | Yes | 0.1 |
문장 (Statements)
HPL/SQL이 지원하는 Oracle PL/SQL 문장:
| 문장 | 설명 | 지원 | 버전 |
|---|---|---|---|
:= |
할당 문 | Yes | 0.1 |
| CREATE FUNCTION | 사용자 정의 함수 생성 | Yes | 0.3.1 |
| CREATE PACKAGE | 패키지 생성 | Yes | 0.3.13 |
| CREATE PROCEDURE | 저장 프로시저 생성 | Yes | 0.3.1 |
| NULL | 아무 작업도 안 함 | Yes | 0.3.13 |
| SELECT INTO | 쿼리에서 변수에 값 할당 | Yes | 0.1 |
더 알아보기 (Learn more)
- 호환성 표를 보면 Oracle의 대부분 데이터 타입과 문장을 지원하지만
BLOB,CLOB,RAW,ROWID등 일부 타입과SUBTYPE은 아직 지원되지 않아요. 스크립트를 이식할 때 이 점을 꼭 확인해 보세요.