View Full Version : SQL-Fehler 0312
Hallo !
Diesen Fehler bekomme ich beim Übersetzen eines simplen SQLRPGLE.
Offensichtlich ist dieser Fehler ja ein dehnbarer Begriff. Hat dennoch jemand
das Problem auch schon gehabt ?
KingofKning
05-08-16, 10:46
Dann würde ich doch mal das simple Programm posten......
Weil Glaskugel und so ist doof
will ich gerne tun !
************************************************** ************************
H**** Name - MCPPGDHIST ****
H**** Function - Tägliche Bereinigung MCPPF2YJ / MCPPF5YJ ****
H**** Author - AM (BMN) am 03.08.2016 ****
H**** Copyright - AM (BMN) 2016 ****
H**** letzte Änd. - ****
H**** Release - 3.1 ****
************************************************** *************************
H CCSID(*GRAPH : *SRC) CCSID(*UCS2 : 1200)
H CCSID(*CHAR : *JOBRUN)
************************************************** *************************
**‚ E r s t e l l u n g s o p t i o n e n
************************************************** *************************
**GEN* BeginCreateOptions(SQLRPGLE)
**GEN* BeginCompileOptions
**GEN* SRTSEQ(*JOBRUN) LANGID(*JOBRUN) COMMIT(*NONE)
**GEN* EndCompileOptions
**GEN* BeginBindOptions
**GEN* EndBindOptions
**GEN* EndCreateOptions
************************************************** *************************
**‚ H - Specs ... Allgemeine Headerbestimmungen
************************************************** *************************
H/Copy ROTSFMODLE,ROTMDCPYR1
************************************************** *************************
**‚ F - Specs ... Dateibestimmungen
************************************************** *************************
************************************************** *************************
**‚ D - Specs ... Globale Deklarationen
************************************************** *************************
**‚Globale Importe
**================
D/COPY ROTSFMODLE,ROTMD$DTIO
D/COPY ROTSFMODLE,ROTMDSYSDS
D/COPY ROTSFMODLE,ROTMD$0003
D/COPY ROTSFMODLE,ROTMD$TIME
D/COPY ROTSFMODLE,ROTMD$$UFA unit feedback area
D/COPY ROTSFMODLE,ROTMD$$SFA SDS
D/COPY ROTSFMODLE,ROTMD$0022 Standard arrays
D/COPY ROTSFMODLE,ROTRHDLMSG
************************************************** *************************
**‚Interne Konstanten
**===================
************************************************** *************************
**‚Interne Strukturen
**==================
************************************************** *************************
**‚Arbeitsvariablen
**=================
D LoeschDatum 6 0
************************************************** *************************
**‚Redefinitionen für Nachrichten
**===============================
************************************************** *************************
**‚Interne Prozeduren
**===================
************************************************** *************************
D InitPgm PR N ExtProc('InitPgm')
D DoPgm PR ExtProc('DoPgm')
D LDatum Like(LoeschDatum)
************************************************** *************************
**‚ H a u p t r o u t i n e - Mainline **
************************************************** *************************
**
/Free
If InitPgm();
Exsr $Rttim;
Exsr $DatRue;
DoPgm(LoeschDatum);
EndIf;
*InLR = *On;
Return;
/End-Free
C************************************************* ************************
**‚ Subroutinen **
C************************************************* ************************
C*/COPY ROTSFMODLE,ROTMDSYSCN
C/COPY ROTSFMODLE,ROTMDDTD11
C/COPY ROTSFMODLE,ROTMDDTD12
C/COPY ROTSFMODLE,ROTMDERROR error handling rout
C/COPY ROTSFMODLE,ROTMDRTTIM time preparation
C/COPY ROTSFMODLE,ROTMDUSRAT user attach
C************************************************* ************************
C*04* $DATRUE - Vom Tagesdatum ein halbes Jahr rückrechnen ****
C************************************************* ************************
C $DATRUE BEGSR
C*
C* ein halbes Jahr zurückgehen
C*
C $006DT SUB 183 LoeschDatum
C*
C DATRUE$ ENDSR
C************************************************* ************************
**‚ DoPgm.. AHP-Datei bereinigen **
************************************************** *************************
**žFunktionsschnittstelle€ €
P DoPgm B
D DoPgm PI
D LDatum Like(LoeschDatum)
**žInterne Variablen€ €
**-------------------------------------------------------------------------
//žSätze ein halbes Jahr zurück löschen (MCPPF2YJ)
C/EXEC SQL
C+ Delete from ALEX/MCPPF2YJ where CrdtYJ < :LDatum
C/END-EXEC
//žSätze ein halbes Jahr zurück löschen (MCPPF5YJ)
C/EXEC SQL
C+ Delete from ALEX/MCPPF5YJ where CrdtYJ < :LDatum
C/END-EXEC
/Free
//žZurück zum Aufrufer:
Return;
/End-Free
**-------------------------------------------------------------------------
P DoPgm E
C************************************************* ************************
**‚ InitPgm ... Initialisierung des Programms **
************************************************** *************************
** Funktionsschnittstelle
P InitPgm B
D InitPgm PI N
** Interne Variablen
**-------------------------------------------------------------------------
/Free
//žZurück zum Aufrufer:
Return *ON;
/End-Free
**-------------------------------------------------------------------------
P InitPgm E
ANGEMECKERT wird im SQL-Delete-Statement das Feld LDatum !!!
Mal so aus der Glaskugel:
Variable &1 nicht definiert oder nicht verwendbar.
Dies spricht zumindest auf ein Release vor V7, denn ab V7 gibts da nur noch später einen Laufzeitfehler.
Ansonsten muss man sich jetzt halt mal um das generierte Spool kümmern. So ganz unwichtig sind die nämlich nicht.
Dann prüfe mal dein Spool wo und wie diese Variable definiert ist.
Im Gegensatz zu RPG, wo ich Variablen auch am Ende definieren kann, benötigt SQL diese am Anfang.
genau - nicht definiert und verwendbar ist die Meldung !
Dann passt der Typ der Variable LDatum nicht zum Tabellen-Feld "CrdtYJ".
Vergleiche mal die Definitionen.
... die Variable ist in einer Deiner vielen Copy-Strecken definiert (ansonsten würden wir sie sehen) und vermutlich ist die Copy-Strecke sogar mehrfach verschachtelt.
Im Compile-Befehl hast Du Option RPGPPOPT (RPG-Vorprozessoroptionen) mit *NONE übergeben.
Setze die Option mal auf *LVL1 oder *LVL2.
Birgitta
Auszug Dateibeschreibung:
PLPSYJ Positionsnr.Planauf. 4 0
MFLPYJ Planungs-KZ MCP 5
DATEYJ Tagesdatum 6 0
CRDTYJ Anlagedatum 6 0
Definition Vergleichsvariable im Programm:
D LoeschDatum 6 0
und LDatum ist mit LIKE LoeschDatum definiert