转: Oracle Form 中commit 与do_key('commit_form')区别

1.commit_form
针对form上面的数据变动进行commit,对于代码中的类似update,insert语句也进行提交;
如果form上面的数据变动和代码中的数据变动有冲突,最后以界面上的为准。
2.do_key(‘commit_form‘)
会首先寻找form下的triggers中的KEY-COMMIT这个trigger,并执行KEY-COMMIT中所写的代码。
如果没有KEY-COMMIT这个trigger,则会针对form和代码一起提交。
如果form上面的数据变动和代码中的数据变动有冲突,最后以界面上的为准。
3.commit
对form和数据库进行提交.
如果form上面的数据变动和代码中的数据变动有冲突,最后以界面上的为准。
4.forms_ddl(‘commit‘);
只针对代码中的update,insert,delete语句进行提交,form上面的数据变动不提交。[@[email protected]]

转: Oracle Form 中commit 与do_key('commit_form')区别

时间: 2024-12-11 00:25:29

转: Oracle Form 中commit 与do_key('commit_form')区别的相关文章

在Oracle Form中,如何实现自动编号(行号)的功能

方法一.只需要将“序号”定义成公式,并将公式设置为:get_block_property('block_name',current_record)就可以实现了,或者把这行语句放到“When-Create-Record”触发器中.缺点:增改删时,行号不能自动刷新. 方法二.在block的三个触发器中添加相应的代码:Key-Crerec: DECLARE LINE NUMBER; BEGIN LINE := :SYSTEM.CURSOR_RECORD; LOOP IF :SYSTEM.LAST_RE

Oracle Sequence中Cache与NoCache的区别;合适使用

Oracle在创建序列(sequence)时有个参数你可以选择cache或者nocache,下面来讲一下两者的区别: 先来看下创建sequence的语句: create sequence SEQ_ID  minvalue 1  maxvalue 99999999  start with 1  increment by 1  cache n  / nocache  --其中n代表一个整数,默认值为20order; 如果指定CACHE值,Oracle就可以预先在内存里面放置一些Sequence,这样

oracle数据库中 rownum 和row_number()的区别和练习

明确对于rownum 来说 它是oracle 系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是二,以此类推,这个为字段可以用于限制查询的返回的总行数,因为rownum总是从1开始,但是1以上的自然数在rownum 做等于判断时都认为是false 条件,所以无法查到 rownum=n (n>1的自然数),所以查找第二行以后的记录可以用子查询方法来解决,给子查询中的rownum取别名;对于小于某个值的情况两种方法都差不多,但是对于某个不等于一的值或者求某个值到某个值之间的情况,用

oracle数据库中游标和序列的区别

两者是完全不同的东西游标是基于查询结果集的比方说你的一个select语句查询出了若干条记录这样一个结果集,如果你想对结果集中的每一行都进行一个判断或则其他操作,那么用sql语句的update或者就不能满足针对每一行的特定操作,这个时候游标就发挥作用了:你可以把这个结果集定义成一个游标,通过游标的操作形式,你可以遍历结果集中的每一行记录并可以对它进行操作,也就是你可以通过游标对一个select查询出的结果执行for循环来遍历操作数据.而序列则是oracle中的一种对象,就像表.视图一样,你可以像建

oracle存储过程中is和as的区别

create or replace procedure imp_person_medical(v_t_table_name varchar2,v_result out varchar2) as /** 参数:v_t_table_name 临时数据表 */ v_sql  varchar2(2000); v_error_count number; begin ---- end imp_person_medical: 在存储过程(PROCEDURE)和函数(FUNCTION)中没有区别,在视图(VIE

Oracle Form 使用注意事项

一.处理错误 1.当错误出現在Oracle Form PL/SQL中时,处理的方法如下: begin if (err_condition) then fnd_message.set_name(appl_short_name, message_name); fnd_message.error; raise form_trigger_failure; end if; end; 2.当错误出现在Stored Procedure中時,处理的方法如下: begin if (err_condition) t

Oracle EBS中有关Form的触发器的执行顺序

http://blog.csdn.net/postfxj/article/details/8135769 触发器执行顺序: 1.  当打开FORM时: (1)       PRE-FORM (2)       PRE-BLOCK(BLOCK级) (3)       WHEN-NEW-FORM-INSTANCE (4)       WHEN-NEW-BLOCK-INSTANCE (5)       WHEN-NEW-RECORD-INSTANCE (6)       WHEN-NEW-ITEM-I

如何在Form中使用描述性弹性域(Descriptive Flexfield)

弹性域包括键弹性域和描述性弹性域,其开发方法和用途均不一样,在此主要介绍描述性弹性域在Form中的开发方法. 描述性弹性域的开发步骤主要包括: 1.创建表,表中包括弹性域结构列和弹性域列2.创建视图,视图中包括弹性域相关列(非必需)3.使用AD_DD工具包注册表和表列4.在Oracle EBS系统中注册描述性弹性域5.启用描述性弹性域6.按照一般Form开发的步骤,创建相关对象 1).在块中创建一个DF非数据库项,并设置属性 2).给DF项和数据块添加必要的触发器和标准代码 3).在PRE-FO

如何在Form中使用键弹性域(Key Flexfield)

在应用弹性域之前必须先定义弹性域,定义之前必须先注册表列.如果你的弹性域已经在Oracle Application Object Library中已经定义和注册了,并且弹性域表和列已经在数据库中存在,则忽略1.2.3步骤,适用于关键性也适用于描述性弹性域. 1.建立相关的数据库表结构.注册表列 关键弹性域COMBINATIONS表必须包括这几个部分:(1)唯一的ID列(2)KEY段,SEGMENT1.SEGMENT2...SEGMENTn(3)ENABLED_FLAG和SUMMARY_FLAG列