Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PL/SQL,如何使触发器打印出特定的列行?_Sql_Oracle_Plsql - Fatal编程技术网

PL/SQL,如何使触发器打印出特定的列行?

PL/SQL,如何使触发器打印出特定的列行?,sql,oracle,plsql,Sql,Oracle,Plsql,在我的特殊情况下,我需要打印每个工资超过10万的员工的“emp_id”和“工资”。它只需要检查,然后打印出来 CREAT OR REPLACE TRIGGER idNumber BEFORE CREATE OR REPLACE TRIGGER salary_trigger AFTER INSERT or UPDATE OF salary, ON Employee for each row WHEN (salary > 100000) DECLARE BEGIN if salary &

在我的特殊情况下,我需要打印每个工资超过10万的员工的“emp_id”和“工资”。它只需要检查,然后打印出来

CREAT OR REPLACE TRIGGER idNumber
BEFORE 
CREATE OR REPLACE TRIGGER salary_trigger
AFTER INSERT or UPDATE OF salary, ON Employee
for each row
WHEN (salary > 100000)
DECLARE 
BEGIN 
if salary > 100000
THEN 
DBMS_OUT.PUT_LINE(salary, emp_id);
END;
/

为什么是触发器?当然只是

select emp_id, salary
from Employee
where salary > 100000;

可以吗?

好的,当添加一个超过100000的新工资块时也应该可以。你说的“打印”是什么意思?DBMS\u OUTPUT.put\u行实际上只用于调试输出。它通常只在客户端设置为检索并显示它时才会显示在屏幕上。我认为在触发器中打印实际上会打印到警报日志(或udump中的跟踪文件)。无法从触发器打印,因为触发器在后台运行,并且与客户端应用程序不关联。