我有一个与此类似的 oracle 触发器:
AFTER INSERT OR UPDATE ON TABLE_ABC FOR EACH ROW
BEGIN
IF (:new.COLUMN_A LIKE '%_H') THEN
INSERT INTO TABLE_DEF (ID, COLUMN_B) VALUES (SEQ_DEF.NEXTVAL, :new.COLUMN_B);
END IF;
END;
现在我想转义 like 子句中的下划线,以便此触发器仅处理 COLUMN_A 中的“ABCD_H”或“1234_H”等值,而不处理“1234H”等值。
对于给定的示例,我怎样才能实现这一目标?
您可以使用转义子句:
if :new.column_a LIKE '%\_H' escape '\' then
另一种选择是只提取最后两个字符:
if substr(:new.column_a, -2) = '_H' then
如果参数为substr()
为负数时,Oracle将从右端提取指定数量的字符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)