PDA

View Full Version : Problem beim Erstellen einer SQL Prozedur



fkeller
06-12-07, 13:50
Hallo zusammen,

bin ein "neuling" auf dem Gebiet der SQL Prozeduren. ich bitte daher um nachsicht ;-)
folgendes Problem stellt sich mir:

habe folgende prozedur code und möchte die Prozedur über den iSeries Navigator erstellen (syntaxprüfung ist erfolgreich) wenn ich dann auf Ausführen klicke wird die Prozedur nicht erstellt und ich erhalte auch keine Fehlermeldung.

schon mal vielen Dank für die Hilfe


CREATE PROCEDURE Schema.P_BSTVLG1
LANGUAGE SQL
SPECIFIC schema.P_BSTVLG1
DETERMINISTIC
MODIFIES SQL DATA
CALLED ON NULL INPUT
BEGIN
DECLARE WOCHENTAGNr INTEGER;
DECLARE CNT CURSOR FOR SELECT COUNT ( * ) FROM Schema . Tabelle1 WHERE FLAG = 'I' ;

SET WOCHENTAGNr = DAYOFWEEK_ISO ( CURRENT DATE ) ;

FOR EACH_ROW AS C2 CURSOR FOR
select Filiale , Tag from schema1.tabelle2 where FCKYHK = 'T00020'
DO
IF ( SELECT COUNT ( * ) FROM schema . tabelle3 WHERE CREDTM = CURDATE ( ) AND FILID = Filiale ) = 0 AND WOCHENTAGNr =
Tag THEN

FOR EACH_ROW AS C1 CURSOR FOR

SELECT feld1, feld2, feld3, FILID




FROM Schema3 . tabelle4

WHERE feld1 > 0 AND FILID = Filiale
AND KB . feld4 = 'T'



DO

INSERT INTO Schema . Tabelle1 ( feld1, feld2, feld3, FILID)



VALUES ( feld1, feld2, feld3, FILID )







END FOR



END IF

END FOR
OPEN CNT




SET RESULT SETS CURSOR CNT

END

Allrounder
07-12-07, 13:52
Hallo fkeller,

ich weiß nicht, wo genau Du auf Ausführen klickst.

Die Erstellung einer Prozedur kann im iSeries Navigator mit dem Assistenten erfolgen. Für den Aufruf der Prozedur musst Du Dich in einer SQL-Umgebung befinden --> Call Schema.Prozedur().

fkeller
07-12-07, 14:04
Hallo fkeller,

ich weiß nicht, wo genau Du auf Ausführen klickst.

Die Erstellung einer Prozedur kann im iSeries Navigator mit dem Assistenten erfolgen. Für den Aufruf der Prozedur musst Du Dich in einer SQL-Umgebung befinden --> Call Schema.Prozedur().
Hallo allrounder,

ich hab das Problem wenn ich versuche den oben geposteten Code auszuführen .

Ich mache das im ISeries Navigator über die Funktion "SQL-Prozeduren ausführen"
welche in Datenbank-Tasks angezeigt wird sobald ich die zu verwendende Datenbank auswähle.

In "SQL-Prozeduren ausführen" gibts ein Menü "Ausführen", dann Menü-Punkt "Alle"

Ich hoffe ich konnte das soweit verständlich darstellen. :)
Es geht mir um die Ausführung des CREATE PROCEDURE - Statements und dass dabei eben nichts passiert (kein Prozedur entsteht und auch keine Fehlermeldung, dass ein Problem auftritt)

Allrounder
07-12-07, 14:55
Hallo fkeller,

wenn ich es richtig verstanden habe, bist Du in der SQL-Umgebung des Navigators und kopierst dort den kompletten Code in das Fenster und klickst "Ausführen-Alle"?

Falls ja, das funktioniert nicht.
Du musst einen Call absetzen: Call Schema.P_BSTVLG1().

Wird die Prozedur denn im Navigator unter Schema-Prozeduren angeziegt? Wenn nicht versuch sie erst einmal mit dem Assistenten zu erstellen (Schema-Prozeduren-Neu)

fkeller
07-12-07, 15:28
Hallo allrounder,

vielen Dank für den Tipp mit dem Assistenten jetzt bekomm ich zumindest ne fehlermeldung SQL0204

"TEST der Art *N in Schema nicht gefunden"

TEST soll der Name der Prozedur sein.

ich werde wegen der fehlermeldung mal ein wenig Googeln

so far

vielen Dank.