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

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top