PostgreSQL을 사용해야하지만 Java에서 함수를 읽으려고 할 때 약간의 문제가 있습니다.Java에서 SETOF 레코드를 반환하는 함수 =
내 기능 :
try {
if (AbrirConexao()) {
conn.setAutoCommit(false);
proc = conn.prepareCall("{ call tiena.recursosdata7(?,?, ?)}");
proc.setString(1,"IG - SP");
proc.registerOutParameter(2, Types.VARCHAR);
proc.registerOutParameter(3, Types.VARCHAR);
//proc.execute();
//resSet = (ResultSet) proc.getObject(1);
resSet = proc.executeQuery();
while(resSet.next())
{
String id = resSet.getString(1);
String fonte = resSet.getString(2);
System.out.println("id : "+ id +", fonte: "+ fonte);
}
proc.close();
}
그러나 나는 항상 같은 오류가 발생합니다 :
CREATE OR REPLACE FUNCTION tiena.RecursosData7(x text, OUT id text, OUT valor text)RETURNS SETOF record
AS
'
SELECT recursodc.idrecursodc, recursodc.valorfonte
FROM tiena.recursodc
WHERE valorfonte=$1;
'
LANGUAGE 'sql';
그런 다음 자바에서 나는 기능이 방법을 읽을 것을 시도하고있다.
Erro : Nenhum resultado foi retornado pela consulta.
org.postgresql.util.PSQLException: Nenhum resultado foi retornado pela consulta.
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:274)
at LerArquivos.ConexaoBD.RecuperarIDRecurso2(ConexaoBD.java:117)
at upload_cg.Main.main(Main.java:24)
매개 변수의 위치를 이동하려했는데 기능과 검색이 많이 발생했지만 해결책을 찾지 못했습니다. 의견 있으십니까?
당신이 * 어떤 종류의 오류가 발생하면 확실히 도움이 될 것입니다. – Voo
오류 게시 StackTrace –
스택 추적 (및 가능한 경우 클래스)이이 커뮤니티에서 더 널리 사용되는 언어 (미안, 영어와 같은) 인 경우 도움이됩니다. (호기심에서, 어떤 언어 _is_ that, portugese?) –