적용 대상: Databricks SQL
Databricks Runtime 14.3 이상
로 제공된 STRING
SQL 문을 실행합니다.
이 문은 필요에 따라 매개 변수 표식에 인수를 전달하고 결과를 변수에 할당합니다.
구문
EXECUTE IMMEDIATE sql_string
[ INTO var_name [, ...] ]
[ USING { arg_expr [ AS ] [alias] } [, ...] ]
다른 SQL 언어와의 호환성을 위해 EXECUTE IMMEDIATE
는 USING ( { arg_expr [ AS ] [alias] } [, ...] )
도 지원합니다.
매개 변수
sql_string
올바른 형식의
STRING
SQL 문을 생성하는 리터럴 또는 변수입니다.EXECUTE IMMEDIATE
구문을 중첩할 수 없습니다.INTO ( var_name [, ...] )
필요에 따라 단일 행 쿼리의 결과를 SQL 변수로 반환합니다. 쿼리가 행을 반환하지 않으면 결과는
NULL
입니다.쿼리가 아니면 Azure Databricks에서
INVALID_STATEMENT_FOR_EXECUTE_INTO
오류를 발생시킵니다.쿼리가 둘 이상의 행을 반환하면 Azure Databricks에서 ROW_SUBQUERY_TOO_MANY_ROWS 오류가 발생합니다.
-
SQL 변수입니다. 변수를 두 번 이상 참조할 수 없습니다.
-
USING { arg_expr [ AS ] [alias] } [, ...]
sql_string
이 매개 변수 표식을 포함하는 경우, 필요에 따라 매개 변수에 값을 바인딩합니다.arg_expr
매개 변수 표식에 바인딩되는 리터럴 또는 변수입니다. 매개 변수 표식이 명명되지 않은 경우 바인딩은 위치별입니다. 명명된 매개 변수 표식의 경우 바인딩은 이름으로 지정됩니다.
alias
명명된 매개변수 마커에
arg_expr
를 바인딩하는 데 사용되는 이름을 재정의합니다. 명명된 각 매개 변수 표식은 한 번 일치해야 합니다. 모든arg_expr
항목이 일치해야 하는 것은 아닙니다.
예제
-- A self-contained execution using a literal string
> EXECUTE IMMEDIATE 'SELECT SUM(c1) FROM VALUES(?), (?) AS t(c1)' USING 5, 6;
11
-- A SQL string composed in a SQL variable
> DECLARE sqlStr = 'SELECT SUM(c1) FROM VALUES(?), (?) AS t(c1)';
> DECLARE arg1 = 5;
> DECLARE arg2 = 6;
> EXECUTE IMMEDIATE sqlStr USING arg1, arg2;
11
-- Using the INTO clause
> DECLARE sum INT;
> EXECUTE IMMEDIATE sqlStr INTO sum USING arg1, arg2;
> SELECT sum;
11
-- Using named parameter markers
> SET VAR sqlStr = 'SELECT SUM(c1) FROM VALUES(:first), (:second) AS t(c1)';
> EXECUTE IMMEDIATE sqlStr INTO sum
USING (5 AS first, arg2 AS second);
> SELECT sum;
11