이 예외는 PostgreSQL 8.3.7 서버에서 응용 프로그램에 던져지고 있습니다. 누구든지이 오류의 의미와 내가 할 수있는 것에 대해 알고 있습니까?Postgres : "ERROR : 캐시 된 계획이 결과 유형을 변경해서는 안됩니다."
ERROR: cached plan must not change result type
STATEMENT: select code,is_deprecated from country where code=$1
이 예외는 PostgreSQL 8.3.7 서버에서 응용 프로그램에 던져지고 있습니다. 누구든지이 오류의 의미와 내가 할 수있는 것에 대해 알고 있습니까?Postgres : "ERROR : 캐시 된 계획이 결과 유형을 변경해서는 안됩니다."
ERROR: cached plan must not change result type
STATEMENT: select code,is_deprecated from country where code=$1
이 오류의 원인을 파악했습니다.
내 응용 프로그램이 데이터베이스 연결을 열고 실행을위한 SELECT 문을 준비했습니다.
한편 다른 스크립트는 위의 SELECT 문에서 반환되는 열 중 하나의 데이터 형식을 변경하여 데이터베이스 테이블을 수정하고있었습니다.
데이터베이스 테이블을 수정 한 후 응용 프로그램을 다시 시작하여이 문제를 해결했습니다. 이렇게하면 데이터베이스 연결이 재설정되므로 준비된 명령문을 오류없이 실행할 수 있습니다.
나는 여기를 방문하는 모든 사람에게 ERROR: cached plan must not change result type
으로 답변을 추가하고 있습니다.
autosave=conservative
으로 드라이버를 구성하면이 문제를 피할 수 있습니다. 이 옵션을 사용하면 서버를 바운스하거나 연결 풀을 없애거나 해결 방법을 찾지 않아도됩니다.
Postgres 9.6 (AWS RDS)에서 재현 된 것으로, 초기 테스트 결과이 옵션으로 문제가 완전히 해결되었음을 나타냅니다.
문서 : https://jdbc.postgresql.org/documentation/head/connect.html#connection-parameters
당신은 문제의 자세한 내용과 역사에 대한 pgjdbc
Github issue 451 볼 수 있습니다.
PostreSQL의 정확한 버전을 공유해 주실 수 있습니까? 8.3.X? –