Wenn Sie eine PL/pgSQL-Funktion ausführen, die ein Ergebnis einer Abfrage zurückgibt, scheint der Postgresql jdbc-Treiber nur eine einzige Spalte ResultSet zurückzugeben. Ich kann nicht herausfinden, wie man auf die Mitglieder des "Tupels" zugreift.Verwenden von mehrspaltigen SETOF-Ergebnis von einer PL/pgSQL-Funktion in via jdbc
Zum Beispiel, wenn ich
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;
eine Datenbank haben, und ich verwenden, um den PL/pgSQL Funktion list_things() von Java wie folgt aus:
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?
}
}
Die Ausgabe sieht wie
(1,pen)
(2,eraser)
Wie kann ich auf die Mitglieder von Tupeln anders als durch zugreifen Parsing der Zeichenfolge?
Thank you !!! Funktioniert !!! – mvuot
mein Vergnügen - froh, dass es geholfen hat –