이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

31.5. 저장 기능 스포츠 토토

postgresql 'sJDBC 드라이버 전화를 전적으로 지원PostgreSQL저장 기능.

예 31-4. 내장 된 저장 기능

이 예제는 A 스포츠 토토 방법을 보여줍니다PostgreSQL내장 기능,어퍼, 단순히 제공된 문자열을 변환합니다 대문자에 대한 논쟁.

// 트랜잭션을 끄십시오.
con.setAutocommit (false);
// 절차 스포츠 토토.
CallAbleStatement 상단 장점 = con.preparecall ( "? = Call Upper (?)");
UpperProc.registerOutParameter (1, type.varchar);
UpperProc.setString (2, "소문자에서 대문자");
UpperProc.execute ();
문자열 상단에 기반을 둡니다 = 상단 proc.getString (1);
UpperProc.close ();

31.5.1. 사용 사용CallableStatement인터페이스

신청하는 모든 고려 사항진술and준비 상태신청CallableStatement그러나 또한 당신은해야합니다 또한 하나의 추가 제한을 고려하십시오.

  • 저장된 함수 만 스포츠 토토 할 수 있습니다. 거래.

31.5.2. 획득resultSeta 저장 기능

postgresql 's저장 함수는 a를 통해 결과를 반환 할 수 있습니다.Refcursor값. 에이Refcursor.

JDBC로의 확장으로PostgreSQLJDBC 드라이버가 반환 할 수 있습니다Refcursor값으로resultSet값.

예 31-5. 구하는Refcursor함수의 값

반환하는 함수를 스포츠 토토 할 때Refcursor반환 유형을 시전해야합니다getObjectaresultSet

// 트랜잭션을 끄십시오.
con.setAutocommit (false);
// 절차 호출.
CallableStatement proc = con.preparecall ( "? = call doquery (?)");
Proc.registerOutParameter (1, type.other);
Proc.setInt (2, -1);
proc.execute ();
resultSet results = (resultSet) proc.getObject (1);
while (results.next ()) 
  // 결과로 뭔가를 ...

치료도 가능합니다Refcursor별도의 유형으로 값을 반환합니다 그 자체. JDBC 드라이버는를 제공합니다.org.postgresql.pgrefcursorresultset클래스 이를 위해.

예 31-6. 치료Refcursor별도의 유형으로

con.setAutocommit (false);
CallableStatement proc = con.preparecall ( "? = call doquery (?)");
Proc.registerOutParameter (1, type.other);
Proc.setInt (2, 0);
org.postgresql.pgrefcursorresultset refcurs 
    = (pgrefcursorResultset) con.getObject (1);
문자열 cursorname = refcurs.getRefcursor ();
proc.close ();