j'ai une procédure stockée dans SQL Server 2005, qui ressemble à ce qui suit (simplifié)NullPointerException avec CallableStatement.getResultSet()
CREATE PROCEDURE FOO
@PARAMS
AS
BEGIN
-- STEP 1: POPULATE tmp_table
DECLARE @tmp_table TABLE (...)
INSERT INTO @tmp_table
SELECT * FROM BAR
-- STEP 2: USE @tmp_table FOR FINAL SELECT
SELECT abc, pqr
FROM BAZ JOIN @tmp_table
ON some_criteria
END
Quand je lance ce proc de SQL Server Management Studio, les choses fonctionnent bien. Cependant, quand je l'appelle le même proc à partir d'un programme Java, en utilisant quelque chose comme:
cs = connection.prepareCall("exec proc ?,");
cs.setParam(...);
rs = cs.getResultSet(); // BOOM - Null!
while(rs.next()) {...} // NPE!
Je ne comprends pas pourquoi le premier jeu de résultat retourné est NULL. Quelqu'un peut m'expliquer cela? Pour contourner le problème, si je vérifie cs.getMoreResults() et si vrai, essayez un autre getResultSet() - CETTE fois il renvoie le jeu de résultats approprié.
Des pointeurs s'il vous plait? (J'utilise les pilotes de JTDS, si elle importe)
Merci, Raj
Umm. Avez-vous appelé 'cs.execute()' ou 'cs.executeQuery()' à un moment donné? – msandiford