가변 열 번호 및 유형을 사용하여 동적 SELECT 쿼리의 결과를 반환하도록 PL/pgSQL 함수를 리팩터링하려면 어떻게 해야 합니까?
Jan 22, 2025 pm 11:37 PM다양한 SELECT 쿼리의 출력을 반환하도록 PL/pgSQL 함수를 리팩터링
소개
SELECT 쿼리를 텍스트 문자열로 생성하는 PL/pgSQL 함수가 있습니다. 이제 독립 실행형 쿼리의 동작과 유사하게 생성된 쿼리를 실행하고 실제 결과를 반환하도록 이 기능을 더욱 향상하려고 합니다.
변수 반환 유형
문제는 반환되는 데이터의 구조와 유형이 쿼리되는 기본 테이블에 따라 달라질 수 있다는 것입니다. 간단한 해결책은 다음과 같이 수정된 함수에서와 같이 공통 열 이름으로 고정 반환 유형을 정의하고 모든 값을 텍스트로 캐스팅하는 것입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
가변 개수의 열 처리
반환된 열 수가 변경되었지만 유형이 동일하게 유지되는 경우(예: 모두 float8인 경우) 중첩된 값의 배열을 사용할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
모든 테이블 유형을 동적으로 반환
다양한 구조의 다양한 완전한 테이블 유형을 처리하려면 다형성 유형을 활용할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
이 함수를 사용하려면 대상 테이블 유형으로 캐스팅되는 NULL 값(예: NULL::pcdmet)을 전달해야 합니다. 그런 다음 적절한 행 유형을 자동으로 결정하고 SELECT * FROM data_of()와 함께 사용할 때 개별 열을 반환합니다.
위 내용은 가변 열 번호 및 유형을 사용하여 동적 SELECT 쿼리의 결과를 반환하도록 PL/pgSQL 함수를 리팩터링하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)

일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까?
