값 반환하기

값을 반환하려면 RETURN 명령을 사용합니다. 다음에서 값을 반환할 수 있습니다.

  • 저장 프로시저의 블록.

  • 익명 블록.

반환 값의 유형

다음 타입 중 하나의 값을 반환할 수 있습니다.

  • 테이블

    RETURN 문에서 TABLE(...) 을 사용합니다.

    블록이 저장 프로시저에 있는 경우 CREATE PROCEDURE 문에서 RETURNS TABLE(...) 절도 지정해야 합니다.

    참고

    현재, RETURNS TABLE(...) 절에서는 GEOGRAPHY 를 열 유형으로 지정할 수 없습니다. 이는 저장 프로시저를 생성하든 익명 프로시저를 생성하든 관계없이 적용됩니다.

    CREATE OR REPLACE PROCEDURE test_return_geography_table_1()
      RETURNS TABLE(g GEOGRAPHY)
      ...
    
    Copy
    WITH test_return_geography_table_1() AS PROCEDURE
      RETURNS TABLE(g GEOGRAPHY)
      ...
    CALL test_return_geography_table_1();
    
    Copy

    GEOGRAPHY를 열 유형으로 지정하려고 할 경우 저장 프로시저를 호출하면 오류가 발생합니다.

    Stored procedure execution error: data type of returned table does not match expected returned table type
    
    Copy

    이 문제를 해결하려면 RETURNS TABLE() 에서 열 인자와 유형을 생략하면 됩니다.

    CREATE OR REPLACE PROCEDURE test_return_geography_table_1()
      RETURNS TABLE()
      ...
    
    Copy
    WITH test_return_geography_table_1() AS PROCEDURE
      RETURNS TABLE()
      ...
    CALL test_return_geography_table_1();
    
    Copy

    RESULTSET 가 가리키는 데이터를 반환하려면 아래 예와 같이 RESULTSET 를 TABLE(...) 로 전달합니다.

    CREATE PROCEDURE ...
    RETURNS TABLE(...)
    ...
    RETURN TABLE(my_result_set);
    ...
    
    Copy

    RESULTSET를 테이블로 반환하기 섹션을 참조하십시오.

변수 값 반환하기

이 예에서는 Snowflake Scripting 익명 블록에서 사용하기 위해 my_var 이라는 변수를 선언한 다음 변수 값을 반환합니다.

DECLARE
  my_var VARCHAR;
BEGIN
  my_var := 'Snowflake';
  RETURN my_var;
END;
Copy

참고: Python Connector 코드에서 Snowflake CLI, SnowSQL, Classic Console, 또는 execute_stream 또는 execute_string 메서드를 사용하는 경우 이 예제를 대신 사용하십시오(Snowflake CLI, SnowSQL, Classic Console 및 Python Connector에서 Snowflake Scripting 사용하기 참조).

EXECUTE IMMEDIATE
$$
DECLARE
  my_var VARCHAR;
BEGIN
  my_var := 'Snowflake';
  RETURN my_var;
END;
$$;
Copy

저장 프로시저 호출에서 반환된 값 사용하기

저장 프로시저 호출에서 반환된 값 사용하기 섹션을 참조하십시오.