sqlBuf := 'SELECT a,b FROM c WHERE calling_nbr in '||tmpAccNbr;
curFlag := DBMS_SQL.OPEN_CURSOR;
OPEN curLocalDur FOR sqlBuf;
LOOP
BEGIN
FETCH curLocalDur INTO a,b;
EXIT WHEN curLocalDur%NOTFOUND;
IF b <= 180 THEN
tmpFee := 2*10;
ELSE
tmpFee := 2*10 +floor((b - 180 + 59)/60)*10;
END IF;
EXECUTE IMMEDIATE 'update c set rate=10 where ticket_id=a and duration=b';
tmpLocalFee := tmpLocalFee + tmpFee;
END;
END LOOP;
DBMS_SQL.CLOSE_CURSOR(curFlag);
curFlag := DBMS_SQL.OPEN_CURSOR;
OPEN curLocalDur FOR sqlBuf;
LOOP
BEGIN
FETCH curLocalDur INTO a,b;
EXIT WHEN curLocalDur%NOTFOUND;
IF b <= 180 THEN
tmpFee := 2*10;
ELSE
tmpFee := 2*10 +floor((b - 180 + 59)/60)*10;
END IF;
EXECUTE IMMEDIATE 'update c set rate=10 where ticket_id=a and duration=b';
tmpLocalFee := tmpLocalFee + tmpFee;
END;
END LOOP;
DBMS_SQL.CLOSE_CURSOR(curFlag);
a和b为变量
EXECUTE IMMEDIATE 'update c set rate=10 where ticket_id='||a||' and duration='||b;
update c set rate=10 where ticket_id=a and duration=b;
USING a,b;