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 ();
CallableStatement
인터페이스신청하는 모든 고려 사항진술
and준비 상태
신청CallableStatement
그러나 또한 당신은해야합니다
또한 하나의 추가 제한을 고려하십시오.
저장된 함수 만 스포츠 토토 할 수 있습니다. 거래.
resultSet
a
저장 기능postgresql 's저장 함수는 a를 통해 결과를 반환 할 수 있습니다.Refcursor값. 에이Refcursor.
JDBC로의 확장으로PostgreSQLJDBC 드라이버가 반환 할 수 있습니다Refcursor값으로resultSet
값.
예 31-5. 구하는Refcursor함수의 값
반환하는 함수를 스포츠 토토 할 때Refcursor반환 유형을 시전해야합니다getObject
aresultSet
// 트랜잭션을 끄십시오. 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 ();