NULL (Snowflakeスクリプト)

NULL は、「no-op」(操作なし)ステートメントとして使用できます。

注釈

Using NULL as a statement is uncommon. NULL is usually used as a value, rather than as a statement.

As a value, NULL means "no value." For more information, see the Wikipedia article on SQL NULL.

When working with semi-structured data types, such as JSON, you might need to distinguish between NULL as an SQL value and NULL as a JSON value (also called "VARIANT NULL").

注釈

この Snowflakeスクリプト 構造は、 Snowflakeスクリプトブロック 内でのみ有効です。

構文

NULL;
Copy

使用上の注意

  • The NULL statement can be executed only inside Snowflake Scripting code.

  • 例外ハンドラーの NULL ステートメントは、上位レベルのハンドラーがない場合に、コードが中止されるのではなく実行を継続することを保証します。

  • A NULL statement in a branch does nothing; however, it communicates to the reader that the author of the code explicitly considered the condition for which the branch would execute. In other words, the NULL shows that the branch condition wasn't overlooked or accidentally omitted.

  • NULL ステートメントを使用する前に、代替手段を検討してください。

    たとえば、例外ハンドラーを持つストアドプロシージャを記述しているとします。ほとんどのストアドプロシージャでは、例外以外の各コードパスにより値を返す必要がある場合、例外ハンドラーを含む各コードパスも値を返す必要があります。その場合は、 NULL ステートメントの実行を避けます。代わりに、 NULL、空の結果セット、またはエラーインジケーターを明示的に返すことを検討してください。

    また、 CONTINUE ハンドラーを使用して、例外ブロック内のステートメントを実行し、エラーが発生したステートメントの直後のステートメントを続行することもできます。詳細については、 Handling an exception in Snowflake Scripting をご参照ください。

Examples

次のコードでは、例外ハンドラーで 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();
Copy
+-------------------+
| NULL_AS_STATEMENT |
|-------------------|
| NULL              |
+-------------------+

注釈

The NULL value returned by the CALL statement isn't directly due to the NULL statement in the exception. Instead, the return value is NULL because the stored procedure didn't execute an explicit RETURN statement.

Snowflakeは、例外ハンドラーの各分岐を含め、ストアドプロシージャが明示的に値を返すようにすることをお勧めします。