带有select inside的Oracle触发器返回多个结果

时间:2015-05-07 11:15:12

标签: sql oracle select triggers

我有触发器

CREATE OR REPLACE TRIGGER my_trigger
AFTERE DELETE OR INSERT OR UPDATE ON my_table
FOR EACH ROW
DECLARE 
  V_PROJECT_ID VARCHAR2(10);
BEGIN
  SELECT PJ_ID INTO V_PROJECT_ID FROM PROJECT_ROLES_GROUPS
  WHERE GRP_ID = :OLD.GRP_ID;

  UPDATE PROJECTS SET TOCUHED = 1 WHERE ID = V_PROJECT_ID;
END;

但触发器内的select语句返回多个值。

我该如何处理这个案子?

1 个答案:

答案 0 :(得分:2)

如何使用in代替变量?

BEGIN
  UPDATE PROJECTS
      SET TOUCHED = 1
      WHERE ID IN (SELECT PJ_ID 
                   FROM PROJECT_ROLES_GROUPS
                   WHERE GRP_ID = :NEW.GRP_ID
                  );
END