CaddyMajor
23-06-14, 15:57
Hallo zusammen,
ich habe möchte folgende SQL Procedure erstellen:
CREATE PROCEDURE HERMOSPM.I_POS_CTY ( )
LANGUAGE SQL
SPECIFIC HERMOSPM.I_POS_CTY
NOT DETERMINISTIC
MODIFIES SQL DATA
CALLED ON NULL INPUT
SET OPTION ALWBLK = *ALLREAD ,
ALWCPYDTA = *OPTIMIZE ,
COMMIT = *NONE ,
DBGVIEW = *SOURCE ,
CLOSQLCSR = *ENDMOD ,
DECRESULT = (31, 31, 00) ,
DFTRDBCOL = *NONE ,
DYNDFTCOL = *NO ,
DYNUSRPRF = *USER ,
SRTSEQ = *HEX
BEGIN
-- Inhalt löschen
DELETE FROM HERMOSPM . POS_CTY ;
-- Und wieder füllen
INSERT INTO HERMOSPM . POS_CTY
SELECT
ROW_NUMBER ( ) OVER ( ) ,
TRIM ( HERMOSPM . GETBACK_ID ( 'ART ' , AARTPK ) ) CONCAT '_' CONCAT TRIM ( PKATPK ) CONCAT '_' CONCAT TRIM ( PONRPK ) ,
1 , CURRENT_DATE , 1 , HERMOSPM . GETBACK_ID ( 'ART ' , AARTPK ) ,
' ' ,
CASE WHEN GRMAPK = 'J' THEN 1 ELSE 0 END ,
TRIM ( PONRPK ) ,
HERMOSPM . GETBACK_ID ( 'LANG' , LG ) ,
CASE WHEN UMFCDPK <> ' ' THEN TRIM ( UMFCDPK ) ELSE CAST ( NULL AS VARCHAR ( 400 ) ) END ,
CASE WHEN MSEIPK <> ' ' THEN TRIM ( MSEIPK ) ELSE CAST ( NULL AS VARCHAR ( 8 ) ) END
FROM HERMOSPM . MAPKATUNI
WHERE LG = 'DEU'
AND COALESCE ( HERMOSPM . GETBACK_ID ( 'ART ' , AARTPK ) , 9999999999 ) <> 9999999999 ;
END ;
Unabhängig vom Sinn des Ganzen:
Wenn ich den Select bzw. den Insert mit dem Select manuell aufrufe, läuft das durch ohne Probleme.
Beim Erstellen der Procedure passiert nichts bist auf eine Art Endlosschleife.
Ich wandel das um (im iSeries Navigator, "Eine SQL-Prozedure :) ausführen") und wenn ich auf der Maschine den Job anschaue, läuft der ewig ohne Ergebnis. Auch keine Fehlermeldung, Joblogmeldung, nichts. Nur ne Art Endlosschleife.
Hat jemand schon sowas mal gehabt? (Wir haben noch V6R1 installiert).
Danke für nen Tip...
Caddy
ich habe möchte folgende SQL Procedure erstellen:
CREATE PROCEDURE HERMOSPM.I_POS_CTY ( )
LANGUAGE SQL
SPECIFIC HERMOSPM.I_POS_CTY
NOT DETERMINISTIC
MODIFIES SQL DATA
CALLED ON NULL INPUT
SET OPTION ALWBLK = *ALLREAD ,
ALWCPYDTA = *OPTIMIZE ,
COMMIT = *NONE ,
DBGVIEW = *SOURCE ,
CLOSQLCSR = *ENDMOD ,
DECRESULT = (31, 31, 00) ,
DFTRDBCOL = *NONE ,
DYNDFTCOL = *NO ,
DYNUSRPRF = *USER ,
SRTSEQ = *HEX
BEGIN
-- Inhalt löschen
DELETE FROM HERMOSPM . POS_CTY ;
-- Und wieder füllen
INSERT INTO HERMOSPM . POS_CTY
SELECT
ROW_NUMBER ( ) OVER ( ) ,
TRIM ( HERMOSPM . GETBACK_ID ( 'ART ' , AARTPK ) ) CONCAT '_' CONCAT TRIM ( PKATPK ) CONCAT '_' CONCAT TRIM ( PONRPK ) ,
1 , CURRENT_DATE , 1 , HERMOSPM . GETBACK_ID ( 'ART ' , AARTPK ) ,
' ' ,
CASE WHEN GRMAPK = 'J' THEN 1 ELSE 0 END ,
TRIM ( PONRPK ) ,
HERMOSPM . GETBACK_ID ( 'LANG' , LG ) ,
CASE WHEN UMFCDPK <> ' ' THEN TRIM ( UMFCDPK ) ELSE CAST ( NULL AS VARCHAR ( 400 ) ) END ,
CASE WHEN MSEIPK <> ' ' THEN TRIM ( MSEIPK ) ELSE CAST ( NULL AS VARCHAR ( 8 ) ) END
FROM HERMOSPM . MAPKATUNI
WHERE LG = 'DEU'
AND COALESCE ( HERMOSPM . GETBACK_ID ( 'ART ' , AARTPK ) , 9999999999 ) <> 9999999999 ;
END ;
Unabhängig vom Sinn des Ganzen:
Wenn ich den Select bzw. den Insert mit dem Select manuell aufrufe, läuft das durch ohne Probleme.
Beim Erstellen der Procedure passiert nichts bist auf eine Art Endlosschleife.
Ich wandel das um (im iSeries Navigator, "Eine SQL-Prozedure :) ausführen") und wenn ich auf der Maschine den Job anschaue, läuft der ewig ohne Ergebnis. Auch keine Fehlermeldung, Joblogmeldung, nichts. Nur ne Art Endlosschleife.
Hat jemand schon sowas mal gehabt? (Wir haben noch V6R1 installiert).
Danke für nen Tip...
Caddy