PostgreSQLを使用する必要がありますが、Javaで関数を読み込もうとすると少し問題があります。java =エラーでSETOFレコードを返す関数
My機能:
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';
はその後、Javaで私は機能をこのように読むことをしようとしています。
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 –
スタックトレース(および場合によってはクラス)がこのコミュニティによって広く使用されている言語(英語のように申し訳ありません)にあった場合にも役立ちます。 (奇妙なことに、何言語ですか?) –