create or replace trigger changetwo
after UPDATE OF tname
ON system.teachers
for EACH ROW
BEGIN
DBMS_OUTPUT.PUT_LINE('The old value is:' || :OLD.TNAME ||
'The new one is:' || :NEW.TNAME);
UPDATE EM.ORA_TEST_TWO
SET EM.ORA_TEST_TWO.NAME = :NEW.TNAME
WHERE EM.ORA_TEST_TWO.ID = SYSTEM.TEACHERS.TID;
END CHANGETWO;
如果主表中的tname更改,就触发ora_test_two中id和tid关联对应的name.报两个错:
一个是说system.teachers.tid标识符无效,另一个是update那条语句statement ignored。请指教。
Error: PL/SQL: ORA-00904: "SYSTEM"."TEACHERS"."TID": 标识符无效
Line: 10
Text: WHERE EM.ORA_TEST_TWO.ID = SYSTEM.TEACHERS.TID;
Error: PL/SQL: SQL Statement ignored
Line: 8
Text: UPDATE EM.ORA_TEST_TWO
after UPDATE OF tname
ON system.teachers
for EACH ROW
BEGIN
DBMS_OUTPUT.PUT_LINE('The old value is:' || :OLD.TNAME ||
'The new one is:' || :NEW.TNAME);
UPDATE EM.ORA_TEST_TWO
SET EM.ORA_TEST_TWO.NAME = :NEW.TNAME
WHERE EM.ORA_TEST_TWO.ID = SYSTEM.TEACHERS.TID;
END CHANGETWO;
如果主表中的tname更改,就触发ora_test_two中id和tid关联对应的name.报两个错:
一个是说system.teachers.tid标识符无效,另一个是update那条语句statement ignored。请指教。
Error: PL/SQL: ORA-00904: "SYSTEM"."TEACHERS"."TID": 标识符无效
Line: 10
Text: WHERE EM.ORA_TEST_TWO.ID = SYSTEM.TEACHERS.TID;
Error: PL/SQL: SQL Statement ignored
Line: 8
Text: UPDATE EM.ORA_TEST_TWO
解决方案 »
- 求助!我在PL/SQL Developer 导入数据的时候出现的问题!
- 哪位大侠帮忙看看这个SQL如何写??
- 那位写过用PQL或JAVA来分析.trc文件?
- oracle中通过表联接查询进行数据更新的语句怎么写?
- 倒底什么地方能用的到pl/sql表,嵌套表,数组这三种东西??
- 求助。急!!!
- power designer and trigger
- 在oracle9i管理工具中数据库备份为什么会失败?
- oracle报表的删除一列是怎样实现?
- 请教格纹大神多行数据如何分组合并计算
- 谁能说说SQL的数据是如何通过接口(有个接口程序)传到Oracle的?
- 连接ORACLE数据库出了问题,很奇怪的问题,请指教下。。。。
EM 有没有建dblink ?
这个用户有没有读取system 表空间的权限?
after UPDATE OF tname ON system.teachers
for EACH ROW
BEGIN
DBMS_OUTPUT.PUT_LINE('The old value is:' || :OLD.TNAME ||
'The new one is:' || :NEW.TNAME);
UPDATE EM.ORA_TEST_TWO
SET EM.ORA_TEST_TWO.NAME = :NEW.TNAME
WHERE EM.ORA_TEST_TWO.ID = :NEW.TID; --改成:new试试
END CHANGETWO;