在oracle中创建触发器

时间:2017-08-30 06:02:43

标签: oracle triggers

请帮我解决以下问题

我需要创建一个名为var str = ["0000000105","104","A","C","B"] let k = str.sorted() print(k) //0000000105, 104, A,B,C 的触发器,只要"联系"表已更新。更新联系人详细信息后,此触发器将org_name和action插入表trigger_contact_af_update。受影响的日志表contact_log_history中的操作名称为contact_log_history

提示: 触发器名称:trigger_contact_af_update 表名:contact_log_history 字段名称:org_name,action 行动:' After_Update_Contact'。

contact_log_history的表结构如下: org_name varchar(30) action varchar(30)

联系表结构如下:

id是联系人表中的主键

id整数 org_name varchar2(255) street_address1 varchar2(255) street_address2 varchar2(255) 城市varchar2(255) state varchar2(255) postal_code varchar2(255) country_code varchar2(255) last_name varchar2(255) first_name varchar2(255) person_title varchar2(255) phone_country_code整数 phone_area_code整数 phone_number varchar2(255) 电子邮件varchar2(255) created_time时间戳

我已经创建了如下触发器,但在执行它时没有返回任何错误消息也没有创建触发器。请让我知道创建触发器/正确声明中的错误

After_Update_Contact

2 个答案:

答案 0 :(得分:2)

为什么你不使用新的更新价值? 您只能插入更新的新值:new.org_name,如此

CREATE OR REPLACE TRIGGER trigger_contact_af_update AFTER UPDATE ON contact FOR EACH ROW 
DECLARE 
BEGIN 
INSERT INTO contact_log_history (org_name, action) values (:new.org_name, 'contact_log_history');
END;

答案 1 :(得分:0)

您必须使用string style = null; if (((Gtk.get_major_version() * 100) + (Gtk.get_minor_version())) >= 320) style = "window {border : none}"; } else { style = "GtkWindow {border : none}"; } 关键字。此外,您必须在:new语句末尾添加;。修正后的触发器版本为:

insert