Postgresql에서 샘플 저장 함수를 작성하고 JDBC에서 제공하는 CallableStatement를 사용하여 호출하려고합니다. CallableStatement PostgreSQL : 매개 변수 오류 개수가 잘못되었습니다.
여기Consumer bean =new Consumer();
CallableStatement pstmt = null;
try {
con.setAutoCommit(false);
String query = "{ ? = call getData(?) }";
pstmt = con.prepareCall(query);
pstmt.registerOutParameter(1, Types.OTHER);
pstmt.setInt(2,5);
pstmt.execute(); // execute update statement
bean=(Consumer)pstmt.getObject(1);
System.out.println("bean"+bean.getConsumer_name());
일부 내 테스트 코드를입니다 그리고 내 저장 기능은 형태이다. 내가 코드를 실행하려고하면
CREATE FUNCTION getData(int) RETURNS SETOF db_consumer AS $$
SELECT * FROM db_consumer WHERE consumer_id = $1;
$$ LANGUAGE SQL;
그러나, 나는 다음과 같은 오류를 받고 있어요.
org.postgresql.util.PSQLException: A CallableStatement was executed with an invalid number of parameters .
왜 이런 일이 벌어 질 수 있습니까?
안녕하세요, 답장을 보내 주셔서 감사합니다. 전 사전 준비 문구를 사용했습니다. CallableStatement를 사용하는 방법을 궁금해했다. – KodeSeeker
나는 이것이 가능하다고 생각하지 않는다. CallableStatement를 사용하면 결과를 처리하기 위해 OUT 매개 변수 (예 : REF CURSOR)가 필요합니다. 그러나 당신이 당신의 함수를 만드는 방법은 refcursor를 정의하지 않습니다. SELECT를 사용하는 것이 유일한 옵션이라고 생각합니다. –