Zitat von
Jens Schumann:
SQL-Code:
EXECUTE STATEMENT 'SELECT SUM('||:L_DEZ||') AS DEZ FROM positiondata pd
WHERE (pd.jahr='||:A_JAHR||' AND pd.entity='||:A_ENTITY ||' AND
pd.posnr='||:A_POSNR||' and pd.ver='||:L_VER||') '
INTO :A_VALUE;
Parameter:
A_JAHR = 2007
A_ENTITY = 100132
A_POSNR = GV5031001110
L_DEZ definierst Du in der Stored Procedure als Dez.
L_Ver nehme ich jetzt mal als 1 an.
Dann sieht das Stetement so aus:
SQL-Code:
SELECT SUM(Dez) as DEZ
FROM positiondata pd
WHERE (pd.jahr=2007
AND pd.entity=100132
AND pd.posnr=GV5031001110
AND pd.ver=1)
korrekt müßte es lauten:
SQL-Code:
SELECT SUM(Dez) as DEZ
FROM positiondata pd
WHERE (pd.jahr=2007
AND pd.entity='100132'
AND pd.posnr='GV5031001110'
AND pd.ver=1)
Die fehlenden Anführungeszeichen bei
AND pd.entity=100132 fallen nicht ins gewicht, da die automatische Typumwandlung den gewünschten Wert zurückgibt.
Aber in der Zeile
AND pd.posnr=GV5031001110 wird GV5031001110 als Feld interpretiert, das der Varchar nicht wie vorgesehen in Hochkomma eingeschlossen ist.
Ich hoffe, etwas Licht ins Dunkel gebracht zu haben.
onlinekater