다음을 통해 공유


SQL 스크립팅

적용 대상:확인 표시 예 Databricks SQL 확인 표시 예 Databricks Runtime 16.3 이상

중요하다

이 기능은 공개 프리뷰.

SQL/PSM 표준 기반 스크립팅 구문을 사용하여 강력한 절차 논리를 사용할 수 있습니다. 모든 SQL 스크립트는 복합 문 블록(BEGIN ... END)으로 구성되고 시작됩니다. 복합 문은 예외를 catch하는 데 사용되는 지역 변수, 사용자 정의 조건 및 조건 처리기를 선언하는 섹션으로 시작합니다. 이 뒤에는 다음으로 구성된 복합 문 본문이 있습니다.

호출자와 복합 문 간에 데이터 전달

SQL 스크립트와 데이터를 전달하는 방법에는 두 가지가 있습니다.

  • 세션 변수를 사용하여 스칼라 값 또는 작은 배열 집합 또는 맵을 한 SQL 스크립트에서 다른 SQL 스크립트로 전달합니다.
  • 매개 변수 표식을 사용하여 스칼라 값 또는 작은 배열 집합을 전달하거나 Notebook 위젯, Python 또는 다른 언어의 데이터를 SQL 스크립트에 매핑합니다.

변수 범위 지정

복합 문 내에 선언된 변수는 복합 문 내의 모든 식에서 참조할 수 있습니다. Databricks는 이름 확인에 설명된 규칙에 따라 가장 안쪽 범위에서 바깥쪽 범위로 식별자를 해석합니다. 선택적 복합 문 레이블을 사용하여 중복된 변수 이름을 구분할 수 있습니다.

조건 처리

SQL 스크립팅은 SQL 스크립트에서 발생하는 예외를 가로채고 처리하는 조건 처리기를 EXIT 처리를 위해 지원합니다. 조건 처리기 내에서 원래 예외를 SIGNAL 예외 없이 복합 문을 종료할 수 있습니다.

조건 처리기는 다음과 같은 세 가지 고유한 조건 클래스를 처리하도록 정의할 수 있습니다.

  • DIVIDE_BY_ZERO 또는 사용자가 선언한 조건과 같은 특정 Databricks 정의 오류 클래스일 수 있는 하나 이상의 명명된 조건입니다. 이러한 처리기는 이러한 특정 조건을 처리합니다.

  • Databricks 또는 사용자 SQLSTATE 문에 의해 발생할 수 있는 SIGNAL하나 이상. 이러한 처리기는 해당 SQLSTATE연결된 모든 조건을 처리할 수 있습니다.

  • 제네릭 SQLEXCEPTION 처리기는 SQLEXCEPTION에 속하는 모든 조건들(SQLSTATE이 아니고 XX***가 아닌 모든 02***)을 모두 포착할 수 있습니다.

다음은 예외에 적용되는 조건 처리기를 결정하는 데 사용됩니다. 이 조건 처리기는 가장 적합한 처리기호출됩니다.

  • 조건 처리기는 그 자체의 본문이나 같은 복합 문에서 선언된 다른 조건 처리기의 본문에 정의된 문에 적용할 수 없습니다.

  • 예외가 발생한 가장 안쪽 복합 문에 정의된 해당 조건 처리기가 적절합니다.

  • 둘 이상의 적절한 처리기를 사용할 수 있는 경우 가장 구체적인 처리기가 가장 적합합니다. 예를 들어 명명된 조건의 처리기는 명명된 SQLSTATE하나보다 더 구체적입니다. 제네릭 EXCEPTION 처리기는 가장 구체적이지 않습니다.

처리기가 자체 조건을 SIGNALRESIGNAL않는 한, 조건 처리기의 결과는 다음으로 실행할 처리기를 선언한 복합 문 다음에 문을 실행하는 것입니다.

SQL 저장 프로시저

중요하다

이 기능은 공개 프리뷰.

적용 대상: 해당됨 Databricks SQL 해당됨 Databricks Runtime 17.0 이상

CREATE PROCEDURE 문을 사용하여 Unity 카탈로그에서 SQL 스크립트를 유지할 수 있습니다. 그런 다음 다른 보안 주체에게 절차에 대한 액세스 권한을 부여할 수 있습니다. 그런 다음 이러한 주요 인물들은 CALL 문을 사용하여 프로시저를 호출할 수 있습니다.

제어 흐름 명령 목록

다음은 지원되는 제어 흐름 문 목록입니다.