값 반환하기

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

  • 저장 프로시저의 블록.

  • 익명 블록.

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

  • SQL 데이터 타입.

  • 테이블. 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 가 가리키는 데이터를 반환하려면 아래 예와 같이 RESULTSETTABLE(...) 로 전달합니다.

    create procedure ...
    returns table(...)
    ...
    return table(my_result_set);
    ...
    
    Copy

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