select ステートメントを使用してトリガーを作成しました。この select ステートメントが行を返さない場合は、変数「auxiliar」に 0 を入れます。NVL(auxiliar,0) を使用しようとしましたが、機能しません。これどうやってするの?
SELECT NVL(salary,0) INTO auxiliar FROM BILL WHERE code=:NEW.code;
[更新]私のトリガーコード:
IF preCondicio THEN
KMpendents:=coalesce(SELECT rev_pendent_km
INTO KMpendents
FROM REV_PENDENT
WHERE rev_pendent_vehicle_codi=:NEW.lloguer_vehicle_codi,0);
IF KMtotals+KMpendents>=15000 THEN
SELECT venedor_codi
INTO venedorCodi
FROM venedor
WHERE venedor_alta=(
SELECT MAX(venedor_alta)
FROM venedor
WHERE venedor_delegacio_codi=(
SELECT venedor_delegacio_codi
FROM venedor
WHERE venedor_codi=:NEW.lloguer_venedor_codi));
INSERT INTO REVISIONS VALUES(:NEW.lloguer_vehicle_codi,:NEW.lloguer_dataf,KMtotals+KMpendents,venedorCodi);
IF KMpendents!=0 THEN
DELETE FROM REV_PENDENT
WHERE rev_pendent_vehicle_codi=:NEW.lloguer_vehicle_codi;
END IF;
ELSE
IF KMpendents!=0 THEN
UPDATE REV_PENDENT SET rev_pendent_km=KMtotals+KMpendents WHERE rev_pendent_vehicle_codi=:NEW.lloguer_vehicle_codi;
ELSE INSERT INTO REV_PENDENT VALUES(:NEW.lloguer_vehicle_codi,KMtotals,:NEW.lloguer_dataf);
END IF;
END IF;
END IF;
変数KMpendentsは、更新前に説明した変数auxiliarと同等です。しかし、オラクルは私にこれらのエラーを示しています:
PLS-00103: 次のいずれかを想定しているときに、記号","が見つかりました: . ( * @ % & - + ; / at for mod 剰余 rem およびまたは交差するグループ 負の順序 start union where connect || indicator multiset