NULL(Snowflake Scripting)

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

참고

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

값으로서, NULL은 “값 없음”을 의미합니다. 자세한 내용은 SQL NULL 에 대한 Wikipedia 자료 를 참조하십시오.

JSON 과 같은 반정형 데이터 타입 을 사용할 때, NULL을 SQL 값으로 취급하는 것과 NULL을 JSON 값(“베리언트 null”이라고도 함)으로 취급하는 것을 구분해야 할 수 있습니다.

참고

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

구문

NULL;
Copy

사용법 노트

  • NULL 문은 Snowflake Scripting 스크립트 내에서만 실행할 수 있습니다.

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

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

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

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

다음 코드에서는 예외 처리기에 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;
$$
;
Copy
CALL null_as_statement();
+-------------------+
| NULL_AS_STATEMENT |
|-------------------|
|              NULL |
+-------------------+
Copy

참고

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

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