1

我尝试插入新行以检查我的触发器是否有效。但它返回标题中的错误

4

2 回答 2

1

您遇到的一个大问题是您的联接写得不正确。我不知道您要做什么,但是查询的部分内容为

INNER JOIN PURCHASE
  ON :NEW.SERVEDBY = P.EMPNO

如果 :NEW.SERVEDBY 恰好等于子查询返回的任何行中 EMPNO 的值,则将表中的每一行连接到子查询。如果条件匹配多次,它实际上可能会多次连接每一行。我怀疑这不是您想要的,但是由于我不知道您的表格是什么样子或您要完成的工作是什么,因此我无法建议采取的方法。PURCHASEPPPURCHASE:NEW.SERVEDBY = P.EMPNO

于 2019-10-16T02:48:30.920 回答
0

以下查询返回多条记录。

SELECT DNAME INTO DeptName FROM (SELECT * FROM DEPT INNER JOIN EMP ON 
 DEPT.DEPTNO = EMP.DEPTNO) P INNER JOIN PURCHASE ON :NEW.SERVEDBY = 
 P.EMPNO; 
-- use fetch first 1 row only or row_number analytical function or rownum pseudo column

您需要将其限制为 1 条记录,因为INTO只能记录一条记录。

干杯!!

于 2019-10-16T02:08:01.543 回答