oracle - 使用触发器删除特定行(员工)后,如何编写 PL/SQL 程序来获取行数(员工人数)?
问题描述
我已经写了这个块,我很确定这里缺少一些东西:
CREATE OR REPLACE TRIGGER
AFTER DELETE
ON Employees
FOR EACH ROW
BEGIN
SELECT COUNT(*) FROM Employees;
END;
谁能帮帮我!!
SQL> CREATE OR REPLACE TRIGGER Trg_Emp_AD AFTER DELETE ON Employees
2 v_count INT;
3 BEGIN
4 SELECT COUNT(*) INTO v_count FROM Employees;
5 DBMS_OUTPUT.PUT_LINE( 'There are '||v_count||' lines in the table' );
6 END;
7 /
v_count INT;
*
ERROR at line 2:
ORA-04079: invalid trigger specification
解决方案
如果需要显示计数结果,则将当前触发器主体转换为以下类型的语句级别,而不是通过首先删除的行级FOR EACH ROW
触发器,例如
SQL> SET SERVEROUTPUT ON
SQL> CREATE OR REPLACE TRIGGER Trg_Emp_AD AFTER DELETE ON Employees
v_count INT;
BEGIN
SELECT COUNT(*) INTO v_count FROM Employees;
DBMS_OUTPUT.PUT_LINE( 'There are '||v_count||' lines in the table' );
END;
/
推荐阅读
- c# - MongoDB 变更流过滤器
- sitecore - Does Sitecore 9 scheduled publishing publish not only an item but also its child and related items?
- decorator - 使用@ApiParam 的嵌套路由,如何在nestjs 中使用自定义验证器?
- python - Robotframework-增加文本框值
- python - 在 pandas 中使用 for 循环合并多个数据帧
- r - 我的剧情错了吗?这是 auc 对 lambda 的图
- joomla3.9 - 搜索结果页面中的 URL 错误,而不是文章指定菜单项的 URL
- javascript - 是否可以使用 Node.js 从 React 获取 HTML 和 CSS 输出?
- asp.net-core - EF Core Scaffold 自定义实体和 DBContext
- python - 动态更新标签/按钮文本