Capture-db2-sql-Ergebnisse im shell-Skript
Ich habe ein shell-script die Verbindung zur Datenbank und das abrufen der Ergebnisse. Mein script ist wie
#!/bin/bash
getResults()
{
db2 "connect to ${1} user ${2} using ${3}"
db2 "set schema ${4}"
status=`db2 -x "select status from results where id=1"`
echo $status
}
#MAIN STARS HERE
getResults dbname foo bar test
Nun wollte ich, um mehrere Spalten der Ergebnistabellen mit
select status,timestamp from results where id=1
Wie kann ich die obige Abfrage und erfassen Sie sowohl den status und den Zeitstempel in zwei unterschiedlichen shell-Variablen mit Abfrage, anstatt 2 verschiedene Abfragen wie
#!/bin/bash
getResults()
{
db2 "connect to ${1} user ${2} using ${3}"
db2 "set schema ${4}"
status=`db2 -x "select status from results where id=1"`
echo $status
timestamp=`db2 -x "select timestamp from results where id=1"`
echo $timestamp
}
#MAIN STARS HERE
getResults dbname foo bar test
Meine Ergebnisse Tabelle ist wie:
create table (id number, status char(1), timestamp datetime);
Ist und Daten wie
1 P <some ts>
2 F <some ts>
Vielen Dank im Voraus!
Wo ist die Tabelle? Wenn es in der Datenbank, die Sie sollten in der Lage sein, um es als eine reguläre insert/create-Anweisung... nicht helfen Kann mit dem shell-script, sorry.
meine Tabelle ist in der Datenbank und ich wollte ermittelt werden die Daten aus dieser Tabelle unter Verwendung der obigen Abfrage aus meinem shell-script. Ich weiß, wie sql ausführen von db2 cnsole.
meine Tabelle ist in der Datenbank und ich wollte ermittelt werden die Daten aus dieser Tabelle unter Verwendung der obigen Abfrage aus meinem shell-script. Ich weiß, wie sql ausführen von db2 cnsole.
InformationsquelleAutor springpress | 2012-01-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass die Datenbank-Verbindung, die Sie in der getResults Funktion ist nicht sichtbar in die subshell (D. H. beim Aufruf
db2 -x
). Mit backticks startet eine neue shell.Diese Arbeit zu machen, die Sie benötigen, um Ihre Abfrage in der gleichen shell:
Beachten Sie, dass mit der while-Schleife hier erhalten Sie die Ausgabe mehrerer Zeilen, wenn Ihre Abfrage mehr als 1 Zeile. Es ist leicht zu ändern, die SQL wieder nur 1 Zeile.
Es funktionierte Dank!
InformationsquelleAutor Ian Bjorhovde