问题出在这里:
SELECT bmmc00
INTO bmmc
FROM bm_bmbm00
WHERE bmbh00 = :NEW.bmbh00; -- delete 数据FOR EACH ROW是行级,不允许这么用.
SELECT bmmc00
INTO bmmc
FROM bm_bmbm00
WHERE bmbh00 = :NEW.bmbh00; -- delete 数据FOR EACH ROW是行级,不允许这么用.
CREATE OR REPLACE TRIGGER zsl_tr_zsl_ygbm00s
AFTER INSERT OR DELETE
ON bm_ygbm00
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
DECLARE
bmmc VARCHAR2 (20);
BEGIN
IF INSERTING THEN
SELECT bmmc00 --修改的地方
INTO bmmc
FROM bm_bmbm00
WHERE bmbh00 = :NEW.bmbh00; INSERT INTO zsl.zsl_ygbm00
(ygbh00, xkh000, zwxm00,
xb0000, bmmc00
)
VALUES (:NEW.ygbh00, TRIM (:NEW.xkh000), :NEW.zwxm00,
:NEW.xb0000, bmmc
);
ELSIF DELETING THEN
DELETE FROM zsl.zsl_ygbm00
WHERE ygbh00 = :old.ygbh00;
ELSE --修改的地方
NULL;
END IF;
EXCEPTION
WHEN OTHERS
THEN
raise_application_error (-20904,
'操作表zsl_YGBM00时发生错误。*'
|| TO_CHAR (SQLCODE)
|| SQLERRM
);
END zsl_tr_zsl_ygbm00s;