SnowConvert AI - Teradata - SQL을 JavaScript로 변환(프로시저)¶
GET DIAGNOSTICS EXCEPTION¶
Teradata GET DIAGNOSTICS EXCEPTION 문을 Snowflake Scripting으로 변환하기 위한 변환 참조
설명 ¶
GET DIAGNOSTICS 는 진단 영역에서 성공, 예외 또는 완료 조건에 대한 정보를 검색합니다.
For more information, see the Teradata GET DIAGNOSTICS documentation.
참고
출력 코드의 일부 부분은 명확성을 위해 생략되었습니다.
샘플 소스 패턴 ¶
Teradata ¶
쿼리¶
Snowflake ¶
Javascript¶
Known Issues¶
지원되지 않는 조건 특성 문
CLASS_ORIGIN
CONDITION_IDENTIFIER
CONDITION_NUMBER
MESSAGE_LENGTH
RETURNED_SQLSTATE
SUBCLASS_ORIGIN
If¶
IF 문 의 변환은 다음과 같습니다.
Teradata
Snowflake
Case¶
Case 문 의 변환은 다음과 같습니다.
Teradata
Snowflake
Cursor Declare, OPEN, FETCH 및 CLOSE¶
cursor 문 의 변환은 다음과 같습니다.
Teradata
Cursor¶
Snowflake
JavaScript Cursor¶
While¶
while 문 의 변환은 다음과 같습니다.
Teradata
동안¶
Snowflake¶
동안¶
Security¶
security 문 의 변환은 다음과 같습니다.
Teradata |
Snowflake |
|---|---|
SQL SECURITY CREATOR |
EXECUTE AS OWNER |
SQL SECURITY INVOKER |
EXECUTE AS CALLER |
SQL SECURITY DEFINER |
EXECUTE AS OWNER |
FOR-CURSOR-FOR loop¶
FOR-CURSOR-FOR 루프 의 변환은 다음과 같습니다.
Teradata
For-Cursor-For-Loop¶
Snowflake
JavaScript For-Cursor-For-Loop¶
참고: Teradata 프로시저에 있는 FOR 루프는 Javascript에서 해당 기능을 에뮬레이션하는 FOR 블록으로 변환됩니다.
문 내에서 참조되는 프로시저 매개 변수 및 변수¶
프로시저의 문에서 참조되는 프로시저 매개 변수 및 변수에 대한 변환은 다음과 같습니다.
Teradata
Parameters and variables¶
Snowflake
JavaScript 매개 변수 및 변수¶
_참고: 프로시저 매개 변수 또는 프로시저 내부에서 선언된 변수가 변환되어야 하는 Teradata 문 내에서 참조될 때마다 _ 이 참조는 원래 참조의 기능을 유지하기 위해 결과 텍스트에서 이스케이프됩니다.
Leave¶
Javascript에서는 break 를 추가 매개 변수와 함께 사용하여 Teradata LEAVE 점프의 동작을 에뮬레이션할 수 있습니다.
레이블은 Javascript 레이블 문을 사용하여 에뮬레이션할 수도 있습니다.
LEAVE 문 의 변환은 다음과 같습니다.
Teradata
Leave¶
Snowflake
JavaScript Leave¶
프로시저에서 결과 가져오기¶
변환에 대한 설명¶
Teradata에서는 프로시저에서 데이터를 반환하는 두 가지 방법이 있습니다. 첫 번째는 출력 매개 변수를 통해, 두 번째는 Dynamic Result Sets 및 _Cursors_를 통해 수행되며, 다음 예시에서는 두 가지를 모두 보여줍니다. 각 중요 사항은 아래에 설명되어 있습니다.
저장 프로시저에서 데이터를 반환하는 예제¶
Teradata
출력 매개 변수¶
Snowflake
JavaScript 출력 매개 변수¶
이 변환된 SQL 에서는 몇 가지 변환이 수행됩니다.
DYNAMIC RESULT SETS 2정의는DYNAMIC_RESULTS변수로 변환됩니다.
When a cursor with an
WITH RETURNattribute is opened (and therefore a query is executed), its query ID is stored in the_OUTQUERIEScollection to be later returned. The query id is obtained by thegetQueryId()function provided in the JavaScript API for Snowflake stored procedures.첫 번째 k-query-IDs 만 컬렉션에 저장되며, 여기서 k는
DYNAMIC_RESULTS변수의 값입니다. 이는 저장 프로시저에서 더 많은 커서가 열려 있어도 첫 번째 k-열린 커서만 반환하는 Teradata의 동작을 에뮬레이션하기 위해 수행됩니다.DECLARE CURSOR WITH RETURN및PREPARE의 조합은 다음과 같이 변환됩니다.
The output parameters are supported through the return statement of the procedure. An array is created containing the value of each output parameter and the
_OUTQUERIEScollection. ThePROCRESULTSfunction deals with the creation and filling of this array. See PROCRESULTS() helper for more information.
저장 프로시저에서 데이터 가져오기 예제¶
프로시저에서 출력 매개 변수와 IDs 쿼리가 반환되는 경우 아래 그림과 같이 두 번째 프로시저가 첫 번째 프로시저를 호출하여 이러한 값을 가져올 수 있습니다.
Teradata
프로시저 호출¶
Snowflake
JavaScript 프로시저 호출¶
Procedure1의P1인자 값이 반환되어X변수에 저장됩니다.Procedure1에서 반환된_ OUTQUERIES는resultset변수에 저장됩니다.
참고
이 동작은 INOUT 매개 변수에도 적용됩니다.
Known Issues¶
문제가 발견되지 않았습니다.
관련 EWIs¶
SSC-EWI-0022: 이 문에 있는 하나 이상의 식별자는 기본적으로 매개 변수로 간주됩니다.
SSC-EWI-0023: 성능 검토 - 루프에는 삽입, 삭제 또는 업데이트 문이 포함되어 있습니다.
SSC-EWI-0026: 변수에 날짜, 시간 또는 타임스탬프에 대한 형변환이 필요할 수 있습니다.
SSC-FDM-TD0001: 이 메시지는 SnowConvert AI가 BLOB 데이터 타입을 발견한 경우에 표시됩니다.