Stored Procedure Query returns strange result
Fabian Eschrich
info at faesch.de
Thu Sep 11 11:31:30 CDT 2008
Hi,
currently I am testing my stored procedures on 4.0b2 and there were strange results, so I added a lot of debugging messages.
Here is one entry of my debug log:
Print : Fetched Manager 1622375229700882386 for Address 200692117291889670020068261110336231300200682113519997630020030206102706 25.10.2006 23:59:59:000
Print : select manager_id from managers where address_id = 200692117291889670020068261110336231300200682113519997630020030206102706 AND startdate < 25.10.2006 23:59:59:000 AND (enddate > 25.10.2006 23:59:59:000 OR enddate IS NULL) ORDER BY startdate DESC;
The problem is: A managerid '1622375229700882386' does not exist. It cannot exist because all ids start with a timestamp.
This is the procedure code:
CREATE OR REPLACE PROCEDURE [SaveStatisticForManager]( IN VADDRESSID VARCHAR, IN VDATETIME DATETIME, IN VNAME VARCHAR, IN VVAL DOUBLE, IN VVALV VARCHAR )
BEGIN
declare vManagerID INTEGER;
DECLARE vcurManager CURSOR FOR select manager_id from managers where address_id = VADDRESSID AND startdate < VDATETIME AND (enddate > VDATETIME OR enddate IS NULL) ORDER BY startdate DESC;
OPEN vcurManager;
BEGIN
FETCH FIRST vcurManager INTO vManagerID;
PRINT CONCAT('Fetched Manager ',vManagerID,' for Address ',VADDRESSID,' ',VDATETIME);
PRINT CONCAT('select manager_id from managers where address_id = ',VADDRESSID,' AND startdate < ',VDATETIME,' AND (enddate > ',VDATETIME,' OR enddate IS NULL) ORDER BY startdate DESC;');
close vcurManager;
CALL SaveStatisticForAddress(vManagerID,getdate(VDATETIME),VNAME,VVAL,VVALV);
-- Recursive Call to myselv
CALL SaveStatisticForManager(vManagerID,VDATETIME,VNAME,VVAL,VVALV);
EXCEPTION WHEN ERR_CURSOR_WRONG_POSITION THEN
PRINT CONCAT('NO MANAGER FOR ',VADDRESSID,' ' ,VDATETIME);
PRINT PRINT CONCAT('select manager_id from managers where address_id = ',VADDRESSID,' AND startdate < ',VDATETIME,' AND (enddate > ',VDATETIME,' OR enddate IS NULL) ORDER BY startdate DESC;');
PRINT
close vcurManager;
end
END;
Have a nice day,
Fabian
More information about the Valentina-beta
mailing list