Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Ergebnis aus SQL-Abfrage auswerten

Frage Entwicklung Batch & Shell

Mitglied: ghostX

ghostX (Level 1) - Jetzt verbinden

02.04.2014, aktualisiert 10:09 Uhr, 3063 Aufrufe, 5 Kommentare

Hallo Zusammen!

stehe vor folgendem Problem:
Habe einen SQL-Select Statement. Per Batch wird ein Connect an die DB gemacht und das Select ausgeführt. Das Ergebnis hat 2 Spalten: Datum/Uhrzeit und String. Ich möchte nun das Ergebnis per Script auslesen und abhängig vom Ergebnis andere Batch-Dateien starten:
IF Datum/Uhrzeit schon länger als eine Stunde her (Vergleich mit aktueller Zeit) AND String = 'Text1'
THEN START Programm1.bat
IF Datum/Uhrzeit schon länger als eine Stunde her (Vergleich mit aktueller Zeit) AND String = 'Text2'
THEN START Programm2.bat

Es kann auch sein dass überhaupt keine Datensätze vorhanden sind. Dann soll einfach garnichts passieren.

Bin leider noch ein Laie bei Batch-Programmierung und bei IF-Anweisungen stoss ich schon an meine Grenzen. Ich hoffe Ihr könnt mir dabei helfen.

Ich weiß auch nicht ob das Ergebnis des Selects erst in eine Datei ausgegeben werden muss um es danach auszulesen oder ob es auch anders möglich ist.
Mitglied: Arano
02.04.2014 um 18:19 Uhr
Hi ghostX,

meine Batchfähigkeiten sind zwar auch begrenzt aber kreativ bin ich auch
Und über Datenbankabfragen per Batch habe ich noch nie nachgedacht...

Wie wäre es mit zwei Datenbankabfragen ?
Die erste liest alle Einträge WHERE `string`='Text1' AND `date`>now()-3600 und
das zweite liest alle Einträge WHERE `string`='Text2' AND `date`>now()-3600

Dann hast du zwei Ergebnisse für zwei Aktionen.
Das beschränkt die IF-Bedingung in der Batch nur noch auf ein IF ergebnis1_anzahl > 0

Wenn das nicht hilft, musst du wohl erst einmal weiter warten bis sich jemand meldet.


~Arano

[...]
Und wenn man noch GROUP BY und COUNT() einarbeitet, müsste sich beide Abfragen wieder in einer vereinen lassen. Welches dann eine Ergebnistabelle liefern sollte die lediglich zwei Datensätze enthält, jeweils die passende Anzahl für die vorkommen von Text1 und Text2.
...glaube ich jedenfalls
Bitte warten ..
Mitglied: SaschaRD
03.04.2014, aktualisiert um 07:45 Uhr
Hallo ghostX,

welche Datenbank (mySQL, Oracle, etc.)?

Könntest Du bitte einen Output deines Statements posten?
Hier habe ich vielleicht etwas, was dir helfen könnte:
01.
 SQLPLUS SYS/SYS@localhost:1521/db.world as SYSDBA < sqlexec.sql > sql.txt
So kann der Inhalt in eine beliebige Datei umgeleitet werden (Beispiel bei einer Oracle DB).

Gruß, Sascha
Bitte warten ..
Mitglied: ghostX
04.04.2014 um 08:39 Uhr
Hi Arano,

das ist ne gute Idee mit 2 Abfragen, daran hab ich garnicht gedacht. Das macht die Sache natürlich etwas einfacher. Dann würde es genügen in meiner IF nur abzufragen ob ein Datensatz vorhanden ist oder nicht. Weißt du wie das dann aussehen muss?
Bitte warten ..
Mitglied: ghostX
04.04.2014 um 09:23 Uhr
Hallo Sascha,

es ist eine Oracle DB.

und so sieht das Ergebnis in der Textfile aus

01.
SQL*Plus: Release 10.2.0.1.0 - Production on Fr Apr 4 09:21:17 2014 
02.
 
03.
Copyright (c) 1982, 2005, Oracle.  All rights reserved. 
04.
 
05.
 
06.
Verbunden mit:  
07.
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production 
08.
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, 
09.
Data Mining and Real Application Testing options 
10.
 
11.
SQL>   2    3    4    5    6    7    8    9   10   11   12   13   14   
12.
STRING		                   DATUM 
13.
------------------------- ------------------- 
14.
AB07C			  04.04.2014 07:40:01 
15.
 
16.
SQL> Verbindung zu Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production 
17.
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, 
18.
Data Mining and Real Application Testing options beendet
Bitte warten ..
Mitglied: Arano
04.04.2014, aktualisiert um 20:22 Uhr
Hi,

naja... ich sagte ja, das meine Fähigkeiten dahingehen auch beschränkt seien aber meine Kreativität nicht

Ein Problem wirst du aber selber in die Hand nehmen müssen. Ich verwende eine MySQL-Datenbank ! Konnte das Query also nur dort testen, falls das zum Problem wird - gehört ja mittlerweile auch irgendwie zu Oracel.

Weil ich Debian als Betriebssystem verwende konnte ich jetzt auch nicht viel probieren um die Ausgabe zu parsen - um nicht zu sagen, gar nicht.
Darum habe ich das Query noch weiter umgestrickt:
Neben dem GROUP BY und COUNT(*) habe ich noch ein IF() eingefügt
01.
  SELECT IF( COUNT(*)=0, 
02.
             'ES_GIBT_KEINE_TREFFER', 
03.
             'WIR_HABEN_WAS_GEFUNDEN')       as treffer 
04.
    FROM `ghostx` 
05.
   WHERE `string`='textA' 
06.
     AND `date`<NOW()-3600 
07.
GROUP BY `string`;
Ich wollte damit erreichen das wir nur eine Ergebniszeile erhalten, die je nach Anzahl gefundener Datensätze das eine Keyword oder das andere enthält. Findet mein Query keine passenden Datensätze wird allerdings eine leere Ergebnistabelle zurückgegeben. ("Empty set 0,00 sec")
Macht aber nichts, denn wir suchen danach einfach nur nach dem Keyword für gefundene Datensätze - entweder es ist da oder nicht.

Nach dem Query können wir mittels findstr in der Ausgabe nach der Zeichenkette "WIR_HABEN_WAS_GEFUNDEN" suchen und dann ganz bequem den %ERRORLEVEL% auswerten.
01.
findstr /C:WIR_HABEN_WAS_GEFUNDEN select-ausgabe-date.txt >nul 
02.
if %ERRORLEVEL% == 0 ( 
03.
    REM starte Programm A 
04.
)

So liefert die Datenbank dir das Ergebnis das du suchst und die Batch ist furchtbar simpel gehalten


Schönes Wochenende
~Arano
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Aus SQL Abfrage Ergebnis in Variable per loop schreiben
gelöst Frage von karlchristianMicrosoft Office4 Kommentare

Hallo, ich habe eine Temp_Abfrage, welche ich per Schleife nach und nach in eine Variable schreiben möchte begonnen habe ...

Windows Tools
Aufgabenplanungs-Ergebnis abfragen
Frage von Havokx23Windows Tools6 Kommentare

Hallo zusammen, ich hab mal ein wenig recherchiert und nichts hilfreiches finden können daher richte ich mich an euch. ...

PHP
Abfrage SQL
gelöst Frage von dudeldoedelPHP3 Kommentare

Hallo zusammen, kann man das in einer SQL Abfrage erreichen ??? Feldwert lautet: {"565":{"textinput":{"comment":"1400"}}} als Ergebnis soll ausgelesen werden ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Neue Wissensbeiträge
Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 5 StundenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 5 StundenSicherheit6 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 6 StundenSicherheit5 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Sicherheit

Meltdown und Spectre: Die machen uns alle was vor

Information von Frank vor 6 StundenSicherheit12 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Heiß diskutierte Inhalte
Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von 92943Windows 1031 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell29 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
Frage von Windows10GegnerNetzwerkgrundlagen19 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...