我有一个数据块'员工';我想在插入数据时手动生成ID字段值。所以我隐藏了显示画布中的ID字段。因此,当我想点击工具栏中的“保存”按钮时,我会在Key-Commit
触发器中编写以下代码。但是数据没有保存到DB。
declare
max_id employee.id%type;
begin
select max(id)+1 into max_id from employee;
message(max_id);
if max_id is null then
max_id := 1;
end if;
insert into employee values(max_id, :first_name, :last_name, :phone);
IF Not Form_Success THEN
Message('Error prevented Commit');
RAISE Form_Trigger_Failure;
END IF;
end;
我无法理解为什么没有插入或保存数据。我的触发器好吗?
答案 0 :(得分:1)
首先,如果您只需要填充max_id,那么最好使用预插入触发器来填充该字段。让oracle表单处理插入。
其次,你忘记了最后的提交。