값 반환하기¶
값을 반환하려면 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를 테이블로 반환하기 섹션을 참조하십시오.