Triggers Oracle 11g触发器替换部分文本字符串
我的触发器一直在变异。触发器的目标是在更新文件路径时更改字符串的一部分。这是我到目前为止得到的,它编译得很好Triggers Oracle 11g触发器替换部分文本字符串,triggers,oracle11g,mutating-table,Triggers,Oracle11g,Mutating Table,我的触发器一直在变异。触发器的目标是在更新文件路径时更改字符串的一部分。这是我到目前为止得到的,它编译得很好 CREATE OR REPLACE TRIGGER TAU_ATTACHMENTS AFTER UPDATE ON ATTACHMENTS FOR EACH ROW BEGIN IF :new.PATH LIKE 'file://Y:%' THEN UPDATE ATTACHMENTS SET PATH = REPLACE(:new.PATH, 'file://Y:'
CREATE OR REPLACE TRIGGER TAU_ATTACHMENTS
AFTER UPDATE
ON ATTACHMENTS
FOR EACH ROW
BEGIN
IF :new.PATH LIKE 'file://Y:%' THEN
UPDATE ATTACHMENTS SET PATH = REPLACE(:new.PATH, 'file://Y:','file://\\MPS7536');
END IF;
END;
/
当我做一个更新单行的测试时,我得到了通常的变异表错误。有什么建议吗?我将非常感激 显然,您希望在存储触发器中的列之前修改该列的值。但是,提供的代码试图更新整个
附件表。您可以修改正在更新的记录的值,如下所示:
CREATE OR REPLACE TRIGGER TAU_ATTACHMENTS
BEFORE UPDATE
ON ATTACHMENTS
FOR EACH ROW
BEGIN
IF :new.PATH LIKE 'file://Y:%' THEN
:new.PATH = REPLACE(:new.PATH, 'file://Y:','file://\\MPS7536');
END IF;
END;
/
请注意,这应该是更新前的触发器。它工作得很好,谢谢!总是一些小事让我着迷。:)