Oracle SQL 在更新特定列后触发,如何在不引发应用程序错误的情况下打印一行?
Oracle SQL Trigger on After Update a certain column, How to print a line without raise application error?
我是 MySQL 的新手,现在我正在学习触发器。我有一个 table,table1。我正在尝试为地址列中执行的每个更新创建一个触发器,我还想打印一行而不引发应用程序错误。这是我的 table 的样子:
create table table1(
2 ID varchar(9),
3 Name char(25),
4 DOB date,
5 address varchar(20)
6 )
7 ;
当我更新地址时,我的触发器似乎没有打印任何输出。
CREATE OR REPLACE TRIGGER TR_UPDATE_ADDRESS
2 AFTER UPDATE of address ON table1
3 BEGIN
4 dbms_output.put_line('Address Column is Updated Successfully');
5 END;
6 /
更新:
update table1 set address = '東京' where ID = '144131214';
输出:
1行が更新されました。 (1 row(s) updated).
要使用 DBMS_OUTPUT.PUT_LINE
,您需要先执行 SET SERVEROUTPUT ON
- 以启用将缓冲区打印到屏幕。
示例:
koen>update table1 set address = 'Belgium';
1 row updated.
koen>set serveroutput on size 999999
koen>update table1 set address = 'Belgium';
Address Column is Updated Successfully
1 row updated.
koen>
我是 MySQL 的新手,现在我正在学习触发器。我有一个 table,table1。我正在尝试为地址列中执行的每个更新创建一个触发器,我还想打印一行而不引发应用程序错误。这是我的 table 的样子:
create table table1(
2 ID varchar(9),
3 Name char(25),
4 DOB date,
5 address varchar(20)
6 )
7 ;
当我更新地址时,我的触发器似乎没有打印任何输出。
CREATE OR REPLACE TRIGGER TR_UPDATE_ADDRESS
2 AFTER UPDATE of address ON table1
3 BEGIN
4 dbms_output.put_line('Address Column is Updated Successfully');
5 END;
6 /
更新:
update table1 set address = '東京' where ID = '144131214';
输出:
1行が更新されました。 (1 row(s) updated).
要使用 DBMS_OUTPUT.PUT_LINE
,您需要先执行 SET SERVEROUTPUT ON
- 以启用将缓冲区打印到屏幕。
示例:
koen>update table1 set address = 'Belgium';
1 row updated.
koen>set serveroutput on size 999999
koen>update table1 set address = 'Belgium';
Address Column is Updated Successfully
1 row updated.
koen>