CREATE OR REPLACE TRIGGER "sa"."test"
BEFORE UPDATE ON "sa"."A" FOR EACH ROW
BEGIN
UPDATE B
SET test=nvl(CONCAT(CONCAT(CONCAT(CONCAT('(',SUBSTR(replace
(:new.test,' ',''),1,2)),')'),SUBSTR(replace(:new.test,' ',''),
3,LENGTH(replace(:new.test,' ',''))-2)),'#'),' ')
WHERE B.id=:new.id ; :new.test=CONCAT(CONCAT(CONCAT(CONCAT('(',SUBSTR(replace
(:new.test,' ',''),1,2)),')'),SUBSTR(replace(:new.test,' ',''),
3,LENGTH(replace(:new.test,' ',''))-2)),'#')
END test;
BEFORE UPDATE ON "sa"."A" FOR EACH ROW
BEGIN
UPDATE B
SET test=nvl(CONCAT(CONCAT(CONCAT(CONCAT('(',SUBSTR(replace
(:new.test,' ',''),1,2)),')'),SUBSTR(replace(:new.test,' ',''),
3,LENGTH(replace(:new.test,' ',''))-2)),'#'),' ')
WHERE B.id=:new.id ; :new.test=CONCAT(CONCAT(CONCAT(CONCAT('(',SUBSTR(replace
(:new.test,' ',''),1,2)),')'),SUBSTR(replace(:new.test,' ',''),
3,LENGTH(replace(:new.test,' ',''))-2)),'#')
END test;
行号= 8 列号= 20 错误文本= PLS-00103: 出现符号 "="在需要下列之一时: := . ( @ % ; indicator
行号= 9 列号= 1 错误文本= PLS-00103: 出现符号 "END"在需要下列之一时: . ( * % & - + ; / at mod rem return returning <an exponent (**)> and or ||
BEFORE UPDATE ON "sa"."A" FOR EACH ROW
BEGIN
UPDATE B
SET test=nvl(CONCAT(CONCAT(CONCAT(CONCAT('(',SUBSTR(replace
(:new.test,' ',''),1,2)),')'),SUBSTR(replace(:new.test,' ',''),
3,LENGTH(replace(:new.test,' ',''))-2)),'#'),' ')
WHERE B.id=:new.id ; :new.test:=CONCAT(CONCAT(CONCAT(CONCAT('(',SUBSTR(replace
(:new.test,' ',''),1,2)),')'),SUBSTR(replace(:new.test,' ',''),
3,LENGTH(replace(:new.test,' ',''))-2)),'#');
END test;
你END 后边加个test什么意思?
(:new.test,' ',''),1,2)),')'),SUBSTR(replace(:new.test,' ',''),
3,LENGTH(replace(:new.test,' ',''))-2)),'#');
加了一个冒号(:new.test:=...)与分号(...'#');) END 后边加个test使过程块更加清晰一些。关键是你运行还有没有问题?