Lors de l'exécution d'une fonction PL/pgSQL renvoyant le résultat d'une requête, le pilote Postgresql jdbc semble renvoyer uniquement une seule colonne ResultSet. Je n'arrive pas à comprendre comment accéder aux membres du "tuple".Utilisation du résultat SETOF multi-colonne d'une fonction PL/pgSQL dans via jdbc
Par exemple, si j'ai une base de données
CREATE TABLE things (id SERIAL PRIMARY KEY, name VARCHAR);
INSERT INTO things (name) VALUES ('pen'), ('eraser');
-- function to return all rows as a SETOF
CREATE OR REPLACE FUNCTION list_things() RETURNS SETOF things AS $$
BEGIN
RETURN QUERY SELECT id, name FROM things;
END
$$ LANGUAGE PLPGSQL;
et j'utiliser la fonction PL/pgSQL list_things() de Java comme ceci:
static void printThings(Connection c) throws SQLException {
Statement s = c.createStatement();
String sql = "SELECT list_things()";
ResultSet rs = s.getResultSet();
while (rs.next()) {
// is String all I can make of it?
System.out.println(rs.getString(1));
// how can I access the name member of result row?
}
}
La sortie ressemble
(1,pen)
(2,eraser)
Comment puis-je accéder aux membres de tuples autrement que par l'analyse de la chaîne?
Merci !!! Travaux!!! – mvuot
mon plaisir - content qu'il a aidé –