20-10-2019, Saat: 18:44
Arkadaşlar merhaba;
Firebirdde kullandığım bir stored procedure örneğini MySQL e taşımaya çalışıyorum.Ancak çalıştırmayı başaramadım.
Syntax hatası nedir yardımcı olabilirmisiniz?
Teşekkürler...
Orijinal Olanı(Firebird):
MySQL:
Firebirdde kullandığım bir stored procedure örneğini MySQL e taşımaya çalışıyorum.Ancak çalıştırmayı başaramadım.
Syntax hatası nedir yardımcı olabilirmisiniz?
Teşekkürler...
Orijinal Olanı(Firebird):
Kod: (Select All)
create or alter procedure BHBAKIYELER (
HANGIBANKA varchar(20))
returns (
KAYITID numeric(18,0),
CIKAN numeric(16,2),
GIREN numeric(16,2),
HESAPTANIMI varchar(20),
ISLEMTARIHI date,
BAKIYE numeric(16,2))
as
declare variable DYN_BAKIYE numeric(18,2);
BEGIN
DYN_BAKIYE = 0.00;
FOR
SELECT KAYITID,CIKAN,GIREN,HESAPTANIMI,ISLEMTARIHI
FROM BANKAHAREKETLERI where BANKAHAREKETLERI.HESAPTANIMI=:HANGIBANKA AND BANKAHAREKETLERI.SIL=0 order by ISLEMTARIHI,ISLEMSAATI,KAYITID
INTO :KAYITID,:CIKAN,:GIREN,:HESAPTANIMI,ISLEMTARIHI DO
BEGIN
DYN_BAKIYE = DYN_BAKIYE + (GIREN-CIKAN);
BAKIYE = DYN_BAKIYE;
SUSPEND;
END
END
MySQL:
Kod: (Select All)
DELIMITER //
CREATE PROCEDURE BHBAKIYELER(
IN HANGIBANKA VARCHAR(50),
OUT `KAYITID` BIGINT,
OUT `GIREN` DOUBLE,
OUT `CIKAN` DOUBLE,
OUT `HESAPTANIMI` VARCHAR(50),
OUT `ISLEMTARIHI` DATE,
OUT `BAKIYE` DOUBLE)
BEGIN
DECLARE DYN_BAKIYE DOUBLE DEFAULT 0.00;
simple_loop: LOOP
SELECT BANKAHAREKETLERI.KAYITID,CIKAN,GIREN,HESAPTANIMI,ISLEMTARIHI
FROM BANKAHAREKETLERI where BANKAHAREKETLERI.HESAPTANIMI = HANGIBANKA AND BANKAHAREKETLERI.SIL = 0 order by ISLEMTARIHI,ISLEMSAATI,KAYITID
DYN_BAKIYE = DYN_BAKIYE + (GIREN-CIKAN);
BAKIYE = DYN_BAKIYE;
END LOOP;
END //
DELIMITER ;