RETURN(Snowflake Scripting)ยถ
์ง์ ๋ ์์ ๊ฐ์ ๋ฐํํฉ๋๋ค.
๋ฐํ ๊ฐ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๊ฐ ๋ฐํํ๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ฐธ๊ณ
์ด Snowflake Scripting ๊ตฌ๋ฌธ์ Snowflake Scripting ๋ธ๋ก ๋ด์์๋ง ์ ํจํฉ๋๋ค.
๊ตฌ๋ฌธยถ
RETURN <expression>;
์ฌ๊ธฐ์
expression
๋ฐํํ ๊ฐ์ผ๋ก ํ๊ฐ๋๋ ์์ ๋๋ค.
์ฌ์ฉ๋ฒ ๋ ธํธยถ
RETURN ๋ฌธ์ ๋ค์์์ ์คํํ ์ ์์ต๋๋ค.
์ ์ฅ ํ๋ก์์ .
์ต๋ช ๋ธ๋ก.
RETURN ๋ฌธ์ ๋ค์ ํ์ ์ค ํ๋๋ฅผ ๋ฐํํฉ๋๋ค.
ํ ์ด๋ธ.
RETURN
๋ฌธ์์TABLE(...)
์ ์ฌ์ฉํฉ๋๋ค.๋ธ๋ก์ด ์ ์ฅ ํ๋ก์์ ์ ์๋ ๊ฒฝ์ฐ CREATE PROCEDURE ๋ฌธ์์
RETURNS TABLE...
์ ๋ ์ง์ ํด์ผ ํฉ๋๋ค.์ฐธ๊ณ
ํ์ฌ,
RETURNS TABLE(...)
์ ์์๋ GEOGRAPHY ๋ฅผ ์ด ์ ํ์ผ๋ก ์ง์ ํ ์ ์์ต๋๋ค. ์ด๋ ์ ์ฅ ํ๋ก์์ ๋ฅผ ์์ฑํ๋ ์ต๋ช ํ๋ก์์ ๋ฅผ ์์ฑํ๋ ๊ด๊ณ์์ด ์ ์ฉ๋ฉ๋๋ค.CREATE OR REPLACE PROCEDURE test_return_geography_table_1() RETURNS TABLE(g GEOGRAPHY) ...
WITH test_return_geography_table_1() AS PROCEDURE RETURNS TABLE(g GEOGRAPHY) ... CALL test_return_geography_table_1();
GEOGRAPHY๋ฅผ ์ด ์ ํ์ผ๋ก ์ง์ ํ๋ ค๊ณ ํ ๊ฒฝ์ฐ ์ ์ฅ ํ๋ก์์ ๋ฅผ ํธ์ถํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
Stored procedure execution error: data type of returned table does not match expected returned table type
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด
RETURNS TABLE()
์์ ์ด ์ธ์์ ์ ํ์ ์๋ตํ๋ฉด ๋ฉ๋๋ค.CREATE OR REPLACE PROCEDURE test_return_geography_table_1() RETURNS TABLE() ...
WITH test_return_geography_table_1() AS PROCEDURE RETURNS TABLE() ... CALL test_return_geography_table_1();
RESULTSET ๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ ค๋ฉด ์๋ ์์ ๊ฐ์ด RESULTSET๋ฅผ TABLE(โฆ)๋ก ์ ๋ฌํฉ๋๋ค.
CREATE PROCEDURE ... RETURNS TABLE(...) ... RETURN TABLE(my_result_set); ...
RESULTSET๋ฅผ ํ ์ด๋ธ๋ก ๋ฐํํ๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ ์ฅ ํ๋ก์์ ์ ๋ฐํ ๊ฐ์ผ๋ก ๋ณ์๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ ์ฅ ํ๋ก์์ ํธ์ถ์์ ๋ฐํ๋ ๊ฐ ์ฌ์ฉํ๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ยถ
์ด ์์์๋ Snowflake Scripting ์ต๋ช
๋ธ๋ก์์ ์ฌ์ฉํ๊ธฐ ์ํด my_var
์ด๋ผ๋ ๋ณ์๋ฅผ ์ ์ธํ ๋ค์ ๋ณ์ ๊ฐ์ ๋ฐํํฉ๋๋ค.
DECLARE
my_var VARCHAR;
BEGIN
my_var := 'Snowflake';
RETURN my_var;
END;
์ฐธ๊ณ : 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;
$$;