동적 쿼리 실행
EXECUTE IMMEDIATE query-string
query-string 값은 실행할 쿼리가 포함된 텍스트 유형의 문자열입니다.
동적 쿼리를 사용할 때는 NZPLSQL에서 인용 부호를 이스케이프하는지 확인하십시오.
EXECUTE IMMEDIATE문에 의해 실행되는 쿼리는 명령문을 실행할 때마다 준비됩니다. 쿼리 문자열을 프로시저 내부에 동적으로 작성하여 다양한 테이블과 필드에 조치를 수행할 수 있습니다.
EXECUTE IMMEDIATE를 사용하면 SELECT 쿼리의 결과를 버릴 수 있으며, SELECT INTO는 현재 EXECUTE IMMEDIATE 내에서 지원되지 않습니다. 따라서 동적으로 생성된 SELECT에서 결과를 추출하는 유일한 방법은 FOR ... 실행 양식에 설명된 쿼리 레코드 반복에 설명된 대로 실행합니다.
EXECUTE IMMEDIATE 'UPDATE tbl SET'
|| quote_ident('fieldname')
|| ' = '
|| quote_literal('newvalue')
|| ' WHERE ...';
이 예에서는 quote_ident
및 quote_literal
함수의 사용을 보여줍니다. 인용 부호 또는 특수 문자에 대한 문자열이 올바르게 처리되려면
컬럼 및 테이블 ID를 포함한 표현식이 quote_ident
로
전달되어야 합니다. 구성된 명령에서 값이 리터럴 문자열인
표현식은 quote_literal
로 전달되어야
합니다. 두 경우 모두 적절한 단계를 수행하여 입력 텍스트를 리턴할 때
quote_ident
에서는 큰따옴표 인용 부호로 묶고
quote_literal
에서는 올바르게 이스케이프되는 임베디드 특수 문자와 함께
인용 부호로 묶습니다.