SnowConvert AI - Oracle - PACKAGES¶
설명¶
CREATEPACKAGE문을 사용하여 데이터베이스에 함께 저장된 관련 프로시저, 함수 및 기타 프로그램 오브젝트의 캡슐화된 모음인 저장 패키지에 대한 사양을 작성합니다. 패키지 사양은 이러한 오브젝트를 선언합니다. 이후에 지정되는 패키지 본문은 이러한 오브젝트를 정의합니다. (Oracle PL/SQL Language Reference CREATE PACKAGE 문)
Snowflake에는 Oracle 패키지와 동등한 것이 없으므로 구조를 유지하기 위해 패키지는 스키마로 변환되고 모든 요소는 스미카 내부에 정의됩니다. 또한 원본 스키마 이름을 유지하기 위해 패키지와 해당 요소의 이름이 바뀝니다.
BODY¶
설명¶
PACKAGE BODY 의 헤더가 제거되고 각 프로시저 또는 함수 정의가 독립형 함수 또는 프로시저로 변환됩니다.
CREATE PACKAGE SYNTAX¶
샘플 소스 패턴¶
참고
다음 쿼리는 PackagesAsSchema 옵션을 비활성화한 상태에서 변환되었습니다.
Oracle¶
Snowflake¶
Snowflake¶
Known Issues¶
문제가 발견되지 않았습니다.
상수¶
패키지 상수에 대한 변환 사양
설명¶
PACKAGE CONSTANTS 는 패키지 선언 또는 PACKAGE BODY 에 선언할 수 있습니다. 프로시저에서 패키지 상수를 사용하면 상수와 동일한 이름과 값으로 새 변수가 선언되므로 결과 코드는 입력된 코드와 매우 유사합니다.
Oracle 상수 선언 구문¶
샘플 소스 패턴¶
샘플 보조 코드¶
Oracle¶
Snowflake¶
Oracle¶
결과¶
ID |
|---|
9999 |
Snowflake¶
결과¶
ID |
|---|
9999 |
참고
PROCEDURE 정의는 Snowflake에서 필수가 아니므로 삭제됩니다.
Known Issues¶
문제가 발견되지 않았습니다.
관련 EWIs¶
SSC-FDM-0006: 숫자 유형 열이 Snowflake에서 유사하게 동작하지 않을 수 있습니다.
DECLARATION¶
설명¶
선언은 스키마로 변환되므로 각 내부 요소는 이 스키마 내에서 선언됩니다. 패키지에 있는 모든 요소는 적절한 변환이 있는 VARIABLES 을 제외하고 모두 설명되어 있습니다.
CREATE PACKAGE SYNTAX¶
샘플 소스 패턴¶
참고
다음 쿼리는 PackagesAsSchema 옵션을 비활성화한 상태에서 변환되었습니다.
Oracle¶
Snowflake¶
참고
FUNCTION 및 PROCEDURE 정의는 모두 Snowflake에서 필수가 아니므로 삭제됩니다.
Known Issues¶
문제가 발견되지 않았습니다.
관련 EWIs¶
관련 EWIs 없음.
VARIABLES¶
패키지 변수의 변환 사양
설명¶
PACKAGE VARIABLES 은 패키지 선언 또는 PACKAGE BODY 에 선언할 수 있습니다. 동작에 따라 이러한 변수는 Snowflake 세션 변수 로 변환되므로 각 사용 또는 할당은 Snowflake에서 해당 변수에 해당하는 변수로 변환됩니다.
Oracle 변수 선언 구문¶
샘플 소스 패턴¶
샘플 보조 코드¶
Oracle¶
Snowflake¶
변수 선언¶
Oracle¶
Snowflake Scripting¶
변수 사용¶
패키지 변수 사용은 현재 세션 변수의 값에 액세스하는 Snowflake GETVARIABLE 함수로 변환되어 세션 변수의 현재 값에 액세스합니다. 이러한 변수가 사용되는 작업에서 기능적 동등성을 유지하기 위해 원래 변수 데이터 타입에 명시적 형변환이 추가됩니다.
Oracle¶
결과¶
ID |
|---|
100 |
Snowflake¶
결과¶
ID |
|---|
100 |
참고
패키지의 PROCEDURE 정의는 Snowflake에서 필수가 아니므로 제거되었습니다.
변수 정규 할당¶
:= 연산자를 사용하여 패키지 변수를 할당하는 경우 할당은 Snowflake SETVARIABLE 함수의 추상화인 UPDATE_PACKAGE_VARIABLE_STATE라는 SnowConvert AI UDF로 대체됩니다.
Oracle
Oracle¶
결과¶
ID |
|---|
200 |
Snowflake¶
결과¶
ID |
|---|
200 |
참고
패키지의 PROCEDURE 정의는 Snowflake에서 필수가 아니므로 제거되었습니다.
출력 인자로 변수 할당¶
패키지 변수가 출력 인자로 사용되면 프로시저 내에서 새 변수가 선언되며, 이 변수는 프로시저의 출력 인자 값을 포착한 후 위에서 언급한 UPDATE_PACKAGE_VARIABLE_STATE를 사용하여 패키지 변수를 참조하는 세션 변수를 업데이트하는 데 사용됩니다.
Oracle¶
결과¶
ID |
|---|
1000 |
Snowflake¶
결과¶
ID |
|---|
1000 |
참고
패키지의 PROCEDURE 정의는 Snowflake에서 필수가 아니므로 제거되었습니다.
Known Issues¶
문제가 발견되지 않았습니다.
관련 EWIs¶
SSC-FDM-0006: 숫자 유형 열이 Snowflake에서 유사하게 동작하지 않을 수 있습니다.