Dear Gurus

saya mencoba mempergunaan perintah for loop untuk scrip dibawah ini tetapi 
selalu
menerima pesan 'not variable bound'
pl sql nya sbb

BEGIN
EXECUTE IMMEDIATE 'UPDATE HR.DBRG SET QTY=:S1 WHERE NOBUKTI=:NOBUKTI AND 
FRM=''COLOR'' AND BARIS=:BARIS AND KOLOM=1' USING :S1,:NOBUKTI,:BARIS;
EXECUTE IMMEDIATE 'UPDATE HR.DBRG SET QTY=:S2 WHERE NOBUKTI=:NOBUKTI AND 
FRM=''COLOR'' AND BARIS=:BARIS AND KOLOM=2' USING :S2,:NOBUKTI,:BARIS;
EXECUTE IMMEDIATE 'UPDATE HR.DBRG SET QTY=:S3 WHERE NOBUKTI=:NOBUKTI AND 
FRM=''COLOR'' AND BARIS=:BARIS AND KOLOM=3' USING :S3,:NOBUKTI,:BARIS;
EXECUTE IMMEDIATE 'UPDATE HR.DBRG SET QTY=:S4 WHERE NOBUKTI=:NOBUKTI AND 
FRM=''COLOR'' AND BARIS=:BARIS AND KOLOM=4' USING :S4,:NOBUKTI,:BARIS;
EXECUTE IMMEDIATE 'UPDATE HR.DBRG SET QTY=:S5 WHERE NOBUKTI=:NOBUKTI AND 
FRM=''COLOR'' AND BARIS=:BARIS AND KOLOM=5' USING :S5,:NOBUKTI,:BARIS;
EXECUTE IMMEDIATE 'UPDATE HR.DBRG SET QTY=:S6 WHERE NOBUKTI=:NOBUKTI AND 
FRM=''COLOR'' AND BARIS=:BARIS AND KOLOM=6' USING :S6,:NOBUKTI,:BARIS;
EXECUTE IMMEDIATE 'UPDATE HR.DBRG SET QTY=:S7 WHERE NOBUKTI=:NOBUKTI AND 
FRM=''COLOR'' AND BARIS=:BARIS AND KOLOM=7' USING :S7,:NOBUKTI,:BARIS;
/** not all variables bound ** /
END; 

akan dirubah dng lopp sbb

declare i:integer;

begin
for i in 1 .. 7  LOOP
EXECUTE IMMEDIATE 'UPDATE HR.DBRG SET QTY=:' || S || i ||  ' WHERE 
NOBUKTI=:NOBUKTI AND FRM=''COLOR'' AND BARIS=:BARIS AND KOLOM=' || i; 
end loop;
end;

mohon pencerahannya


salam

[Non-text portions of this message have been removed]

Kirim email ke