Datenbank Befehl nach Login

Diskutiere Datenbank Befehl nach Login im Java Basics - Anfänger-Themen Bereich.
S

Siggi99

Hallo,
ich kann mich auf der H2 Datenbank über die Dos Konsole einlogen und anschließend mit Select Daten in eine CSV exportieren.

Das wollte ich dann in eine Batsh schreiben um dieses zu automatisieren.
In einer Batsh bleibt diese aber nach dem LOGIN stehen. SQL>
------------------------------------------------------------------
cd C:\Nextcloud-KCH\JVerein-Kopie\Auswertungen\
java -cp C:\Nextcloud-kch\JVerein-Kopie\Programm\jameica\lib\h2\h2-1.4.197.jar org.h2.tools.Shell -url "jdbc:h2:C:\Nextcloud-kch\JVerein-Kopie\Profil\jverein\h2db\jverein;IFEXISTS=TRUE;ACCESS_MODE_DATA=r" -user jverein -password jverein

CALL CSVWRITE('C:\Nextcloud-KCH\JVerein-Kopie\Auswertungen\Adressenexport2.csv', 'SELECT ANREDE, TITEL, NAME, VORNAME, STRASSE, PLZ, ORT, EMAIL FROM PUBLIC.MITGLIED');
Exit
------------------------------------------------------------------
Wie muss da der Befehl richtig aussehen, das der CALL Befehl weiter läuft.

Grüße
Siegfried
 
J

JustNobody

Ich denke, das sind die Befehle, die sonst eingegeben werden sollen. Hier fehlt also die Grundlage des Scriptings!

Wenn das CALL... bis EXIT das ist, was sonst eingegeben wird, könntest Du das mit dem Pipe Symbol in die Applikation leiten:
java -cp ...... -password jverein < eingabe.sql
Und in der eingabe.sql dann diese zwei Zeilen..

 
S

Siggi99

Hallo
Danke für die Antworten.
- Ich habe eine zweite Batsh erstellt, und den Befehl call... dort eingefügt.
Starte ich aber die Batsh1 mit dem Login, so bleibt Sie mit der Promtzeile sql> stehen, und ruft die zweite Batsh gar nicht auf. Siehe Anhang.
Öffne ich die Batsh2 mit dem Call Befehl läuft sie auf einen Fehler, weil der Befehl ja nach dem sql> eingegeben werden muss.

- Die zweite Lösung mit der Pipe | geht auch nicht. (auch Ohne den CALL)
cd C:\Nextcloud-KCH\JVerein-Kopie\Auswertungen\
java -cp C:\Nextcloud-kch\JVerein-Kopie\Programm\jameica\lib\h2\h2-1.4.197.jar org.h2.tools.Shell -url "jdbc:h2:C:\Nextcloud-kch\JVerein-Kopie\Profil\jverein\h2db\jverein;IFEXISTS=TRUE;ACCESS_MODE_DATA=r" -user jverein -password jverein |
CALL CSVWRITE('C:\Nextcloud-KCH\JVerein-Kopie\Auswertungen\Adressenexport2.csv', 'SELECT ANREDE, TITEL, NAME, VORNAME, STRASSE, PLZ, ORT, EMAIL FROM PUBLIC.MITGLIED');
Exit
Was mache ich falsch
Grüße
Siegfried
 

Anhänge

J

JustNobody

Es gibt 3 Pipe Symbole:
> Leitet die Ausgabe um in eine Datei
| Leitet die Ausgabe in einen anderen Prozess
< Leitet den Inhalt einer Datei in den Prozess.

Das wird in dem Link erläutert - solltest Du Dir evtl. einmal in Ruhe ansehen.

Ansonsten kannst Du aber auch gerne meinen Beitrag noch einmal lesen, denn ich habe es dort ja auch gezeigt (Und ich habe da nicht | sondern < verwendet)

Alternativ funktioniert es evtl. auch mit dem | - da muss man dann aber alles etwas umdrehen:
Den Inhalt der Datei ruft man unter Windows mit type ab.
type myscript.sql | java -cp ....

Aber hier habe ich unter Windows wenig Erfahrung. Unter Unix ist das durchaus etwas übliches - da wird deutlich mehr so gearbeitet ... da ist es aber nicht type sondern cat ....
 
Thema: 

Datenbank Befehl nach Login

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben