Groovy Sql zum Abrufen aller Spalten
-
29-10-2019 - |
Frage
Ich verwende Groovy Sql, um Ergebnisse abzurufen.Dies ist die Ausgabe von meiner Linux-Box.
%isql -U abc -P abc -S support
1> sp_configure 'number of open partitions'
2> go
Parameter Name Default Memory Used Config Value Run Value Unit Type
------------------------------ ----------- ----------- ------------ ------------ -------------------- ----------
number of open partitions 500 5201 5000 5000 number dynamic
(1 row affected)
(return status = 0)
1>
Ich benutze groovigen Code
def sql = Sql.newInstance("jdbc:abc:sybase://harley:6011;DatabaseName=support;",dbuname,dbpassword,Driver)
sql.eachRow("sp_configure 'number of open partitions'"){ row ->
println row.run_value
}
aber es gibt mir
Exception in thread "main" java.sql.SQLSyntaxErrorException: [abc][Sybase JDBC Driver]Invalid column name: run_value
Gibt es eine Möglichkeit, das Ergebnis abzurufen und anzuzeigen?
Update
Ich habe den folgenden Code verwendet
sql.eachRow("sp_configure 'number of open partitions'"){ row ->
println row
}
und es gibt mir
[Parameter Name:number of open partitions , Default: 500, Memory Used: 5201, Config Value: 5000, Run Value: 5000, Unit:number , Type:dynamic ]
Wie kann ich bekommen Run Value
?(da es einen Platz darin hat)
row.Run Value
wird sicher nicht funktionieren
Lösung
funktioniert das?Abfragen der Meta-Daten für den Spaltennamen und den Wert nach Index: generasacodicetagpre.
oder, um die Spalte direkt zu erhalten generasacodicetagpre.
Andere Tipps
Eine andere Alternative ist Getat (Int).In Ihrem Fall gibt dies den "Run-Wert" an:
row.getAt(-3)
Zusätzlich zu @ tim_yates 'Antwort möchte ich das anmerken row
hat toRowResult()
Methode.Es ermöglicht, eine Zeile einfach als Karte zu erhalten.Kein Anruf nötig getMetadata()
wenn wir nur Spaltennamen oder Tabellenbreite benötigen.
sql.eachRow("sp_configure 'number of open partitions'"){ row ->
row.toRowResult().each(){ colName, value ->
println "${colName} = ${value}"
}
}
Dieser Code macht absolut dasselbe, sieht aber viel klarer aus