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
GELÖST

Letzter Datensatz wird zweimal ausgegeben. Warum?

Frage Entwicklung Datenbanken

Mitglied: Web-Spirits

Web-Spirits (Level 1) - Jetzt verbinden

10.07.2014 um 11:59 Uhr, 1135 Aufrufe, 1 Kommentar

Hallo,

Ich habe folgende Prozedur geschrieben:

01.
use personal; 
02.
 
03.
drop PROCEDURE if EXISTS p_gehalt; 
04.
 
05.
DELIMITER $$ 
06.
 
07.
CREATE PROCEDURE p_gehalt(va_maxAvgGehalt DECIMAL(10,2)) 
08.
p_start: BEGIN 
09.
  DECLARE va_loopDone BOOLEAN DEFAULT FALSE;	-- Loop Flag 
10.
  DECLARE va_loopCount INT DEFAULT 0;						-- Schleifen Zähler 
11.
  DECLARE va_avgGehalt DECIMAL(10,2);			-- Durchschnittsgehalt 
12.
  DECLARE va_name VARCHAR(50);					-- Mitarbeiter Nachname 
13.
  DECLARE va_vname VARCHAR(50);					-- Mitarbeiter Vorname 
14.
  DECLARE va_gehalt DECIMAL(10,2); 
15.
 
16.
  DECLARE c_gehaltItem CURSOR FOR  
17.
    SELECT name, vname, gehalt FROM mitarbeiter; 
18.
 
19.
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET va_loopDone = TRUE; 
20.
 
21.
  SELECT avg(gehalt) FROM mitarbeiter INTO va_avgGehalt; -- Durchschnittsgehalt ermitteln 
22.
 
23.
  OPEN c_gehaltItem; 
24.
 
25.
  l_fetch_daten:LOOP 
26.
    IF va_loopDone THEN 
27.
		CLOSE c_gehaltItem; 
28.
		LEAVE l_fetch_daten; 
29.
    END IF; 
30.
    FETCH c_gehaltItem INTO va_name, va_vname, va_gehalt; 
31.
	SET va_loopCount = va_loopCount +1; 
32.
    SELECT va_name, va_vname, va_gehalt, va_avgGehalt; 
33.
    /* IF (va_gehalt < va_avgGehalt) THEN 
34.
		SELECT va_name, va_vname, va_gehalt; 
35.
	END IF; */ 
36.
  END LOOP l_fetch_daten; 
37.
SELECT va_loopCount; 
38.
END p_start 
39.
$$ 
40.
 
41.
DELIMITER ; 
42.
 
43.
CALL p_gehalt(2030);
Jetzt wird mir der letzte Datensatz in der Tabelle zweimal ausgegeben und ich weiß nicht wo der herkommt.
Ich habe auch geprüft ob der Datensatz zweimal in der Tabelle ist. Er kommt nur einmal vor.

Kann mir das vielleicht jemand erklären?

Danke schon mal und Grüße aus dem Norden.
Mitglied: Jochem
11.07.2014 um 10:32 Uhr
Moin,

ich vermute mal, daß es um PHP geht, wenn nicht, vergiß den nachfolgenden Text.

Gemäß der Definition zu "declare continue"

01.
Ein CONTINUE-Handler lässt die Ausführung der aktuellen Routine nach der Ausführung der Handler-Anweisung weiterlaufen. Ein EXIT-Handler dagegen beendet die Ausführung für die zusammengesetzte BEGIN ... END-Anweisung, in der er deklariert ist. 
wird die Begin ... End-Anweisung noch einmal durchlaufen und findet so den doppelten Satz.

In Zeile 26 bis 29 schickst Du die Routine zwar aus der Loop l_fetch_daten raus, aber die Begin ... End-Anweisung ist immer noch aktiv, wird also noch einmal durchlaufen.

Zeile 37 müßte dann aber auch hinter Zeile 38 liegen.

Gruß J chem
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Per SQL (Oracle) Alle datensätze des letzten Monats filtern
gelöst Frage von thomas1972Datenbanken6 Kommentare

Hallo ich habe eine Tabelle welche ich abfragen möchte, diese soll mir aber nur die Werte des letzten Monats ...

Batch & Shell
PowerShell - Werte werden nicht ausgegeben und Formatierung Ausgabe
gelöst Frage von goodbytesBatch & Shell16 Kommentare

Hallo, diese Abfrage im PS-Fenster (Windows PowerShell ISE) gibt im PS-Fenster dieses Ergebnis zurück: Die gleiche Abfrage, nur mit ...

Ubuntu
Ubuntu: Audio wird stark verlangsamt ausgegeben
gelöst Frage von ralfkauskUbuntu2 Kommentare

Ich habe ein Lenovo Thinkpad mit Linux Ubuntu 16.04 LTS. Seit neustem werden alle Audioausgaben stark verzögert. Es war ...

Windows Server
DNS Server Zweimal vorhanden - Probleme bei der Namensauflösung
Frage von SandnetWindows Server4 Kommentare

Haben einen neuen Windows 2012 R2 Server installiert. Ist gleichzeitig auch DC. Ich habe festgestellt das der DNS Server ...

Neue Wissensbeiträge
Microsoft

Update KB4073578 für AMD CPU (Spectre und Meltdown Lücke)

Information von sabines vor 1 StundeMicrosoft

Wegen Problemen (BOSD, nicht startende PCs) wurde das Update KB4056897 und KB4056894 für AMD CPUs zurückgezogen. Dieses Update KB4073578 ...

Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 14 StundenMac OS X1 Kommentar

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 21 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 23 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

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 ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1018 Kommentare

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

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...