NULL(Snowflake Scripting)

NULL은 “no-op”(작업 없음) 문으로 사용할 수 있습니다.

참고

NULL을 문으로 사용하는 것은 흔치 않은 일입니다. NULL은 보통 *문*보다는 *값*으로 사용됩니다.

값으로서, NULL은 “값 없음”을 의미합니다. 자세한 내용은 `SQL NULL 에 대한 Wikipedia 자료<https://en.wikipedia.org/wiki/Null_(SQL)>`_를 참조하세요.

:doc:`JSON</user-guide/tutorials/json-basics-tutorial>`과 같은 :doc:`반정형 데이터 타입</sql-reference/data-types-semistructured>`을 사용할 때, :ref:`NULL을 SQL 값으로 취급하는 것과 NULL을 JSON 값(“VARIANT NULL”이라고도 함)으로 취급하는 것을 구분<label-variant_null>`해야 할 수 있습니다.

참고

이 Snowflake Scripting 구문은 Snowflake Scripting 블록 내에서만 유효합니다.

구문

NULL;

사용법 노트

  • NULL 문은 Snowflake Scripting 코드 내에서만 실행할 수 있습니다.

  • 예외 처리기의 NULL 문은 상위 수준 처리기가 없는 경우에 코드가 중단되지 않고 계속 실행되도록 보장해 줍니다.

  • 분기의 NULL 문은 아무것도 하지 않지만, 코드 작성자가 분기가 실행될 조건을 명시적으로 고려했음을 독자에게 알려주는 역할을 합니다. 즉, NULL은 분기 조건을 간과하거나 우연히 누락하지 않았다는 점을 보여줍니다.

  • NULL 문을 사용하기 전에 대안을 고려하십시오.

    예를 들어 예외 처리기로 저장 프로시저를 작성한다고 가정하겠습니다. 대부분의 저장 프로시저에서는 각각의 비 예외 코드 경로가 값을 반환해야 하는 경우에 예외 처리기를 수반하는 각 코드 경로 역시 값을 반환해야 합니다. 그러한 경우에는 NULL 문을 실행하지 마십시오. 대신에 NULL, 빈 결과 세트 또는 오류 표시기를 명시적으로 반환해 보십시오.

    CONTINUE 처리기를 사용하여 예외 블록에서 문을 실행하고 오류를 일으킨 문 바로 다음에 오는 문으로 계속 진행할 수도 있습니다. 자세한 내용은 Snowflake Scripting에서 예외 처리 섹션을 참조하십시오.

예

다음 코드에서는 예외 처리기에 NULL 문을 사용하여 예외가 (호출자에게 전달되지는 않고) 포착되지만 아무런 구체적인 작업도 수행되지 않도록 합니다.

CREATE PROCEDURE null_as_statement()
RETURNS VARCHAR
LANGUAGE SQL
AS
$$
BEGIN
  SELECT 1 / 0;
  RETURN 'If you see this, the exception was not thrown/caught properly.';
EXCEPTION
  WHEN OTHER THEN
      NULL;
END;
$$
;

저장 프로시저를 호출합니다.

CALL null_as_statement();
+-------------------+
| NULL_AS_STATEMENT |
|-------------------|
| NULL              |
+-------------------+

참고

CALL 문에서 반환되는 NULL 값은 예외의 NULL 문이 직접적인 원인이 아니며, 대신에 저장 프로시저가 명시적 RETURN 문을 실행하지 않았으므로 NULL이 반환되는 것입니다.

예외 처리기의 각 분기를 포함하여, 저장 프로시저가 명시적으로 값을 반환하도록 하는 것이 좋습니다.