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은 아직 지원되지 않아요. 스크립트를 이식할 때 이 점을 꼭 확인해 보세요.