EXECUTE IMMEDIATE
적용 대상: 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] } [, ...] )
Parameters
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
에 매개변수 표식이 포함된 경우, values이 parameters에 바인딩됩니다.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