我必須使用PostgreSQL,但是當嘗試讀取Java中的函數時,我遇到了一些問題。返回java中的SETOF記錄的函數=錯誤
我的功能:
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中,我試圖讀取功能是這樣的:
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();
}
但我總是得到同樣的錯誤。
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 2012-04-27 20:14:44
發佈錯誤StackTrace – 2012-04-27 20:15:49
如果堆棧跟蹤(以及可能的類)使用的語言更爲廣泛,可以使用此社區(對不起,如英語)。 (出於好奇,語言是什麼,葡萄牙語?) – 2012-04-27 21:48:38