리턴할 필드 리스트나 조회할 where 조건이 경우에 따라 변해야 하는 경우 동적으로 SQL문을 문자열로 만들고 실행하기 위한 문법이 필요합니다. 그럴 때 쓸 수 있는 문법이 EXECUTE STATEMENT 문법입니다. 사용하는 방법은 간단합니다.
EXECUTE STATEMENT 쿼리문
여기서 쿼리문에는 문자열 자체나 문자열 변수가 들어갈 수 있고, psql에서 into를 이용해서 변수 값을 받아올 수도 있습니다. 간단한 예를 들어보면,
CREATE PROCEDURE NEW_PROCEDURE
returns (
result bigint)
as
declare variable xsql varchar(100);
begin
xSql = 'select count(readcount) from new_table';
EXECUTE STATEMENT :xSql into :result;
suspend;
end
위 예에서 보다시피, 결과셋을 리턴하는 SQL 문을 동적으로 생성해서 실행할 경우 그 결과를 일반 select 문에서처럼 into를 이용하여 변수 리스트로 넣을 수 있습니다.
|