은 내가 응답동적 쿼리는
EXECUTE 'Select * from products';
다음 얻을 동적 쿼리 다음 포스트 그레스와 실행에 새로운 오전 POSTGRES.
ERROR: syntax error at or near "'Select * from products'"
LINE 1: EXECUTE 'Select * from products';
나는이 내가
fine manual에서
은 내가 응답동적 쿼리는
EXECUTE 'Select * from products';
다음 얻을 동적 쿼리 다음 포스트 그레스와 실행에 새로운 오전 POSTGRES.
ERROR: syntax error at or near "'Select * from products'"
LINE 1: EXECUTE 'Select * from products';
나는이 내가
fine manual에서
을 실종 기본 일 것 알고 :
시놉시스를
EXECUTE name [ (parameter [, ...]) ]
설명
EXECUTE
은 이전에 준비된 명령문을 실행하는 데 사용됩니다.
그래서 EXECUTE
는 이름으로 식별되는 준비된 문을 실행, SQL 문자열을 실행하지 않고 당신은 PREPARE를 사용하여 개별적으로 문을 준비해야합니다
=> prepare stmt as select * from products;
=> execute stmt;
-- "select * from products" output goes here...
가 EXECUTE
있다 문을 plpgsql, 당신이하려고하는 것입니다 - SQL 쿼리 문자열을 실행합니다. dynamic이라는 태그가 지정되어 있으므로 원하는 내용을 찾을 수 있습니다.
plpgsql 함수 또는 DO
문 (익명 코드 블록)에서만 작동합니다. The distinction between EXECUTE
and SQL-EXECUTE
made clear in the fine manual :
참고 : PL/pgSQL의
EXECUTE
문은 PostgreSQL 서버가 지원하는EXECUTE
SQL 문 관련이 없습니다. 서버의EXECUTE
문은 PL/pgSQL 함수 내에서 직접 사용할 수 없으며 ( 은 필요하지 않습니다).
예를 들어 동적 예제 SELECT
쿼리에서 값을 반환하려면 함수를 만들어야합니다. DO
문은 항상 void
을 반환합니다. More about returning values from a function in the very fine manual.