ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Application Developers Guide复习之Building Your Database Objects

Application Developers Guide复习之Building Your Database Objects

原创 Linux操作系统 作者:asiaidea 时间:2010-11-04 18:42:40 0 删除 编辑

A. 通过WHO字段来跟踪表数据的变化.

B. 通过fnd_standard.set_who来设置WHO字段

C. 请求及程序类的WHO字段可在Package 中调用fnd_globe来设置.

D. 为Creation_date, Last_update_date定义CREATION_OR_LAST_UPDATE_DATE 的Class property.

E. WHO字段中记录的USERID信息有可能是错误的,不要试图用它来关联Employees表.如一定要用,请用外联

接.(我的理解是USERID记录的可能是已被删除的用户).

F. 如表中无WHO字段,须禁用HELP–>ABOUT_THIS_RECORD. 方法如下:

在BLOCK级的WHEN–NEW–BLOCK–INSTANCE(”Override”) 中写如下代码:

app_standard.event(’WHEN–NEW–BLOCK–INSTANCE’);

app_special.enable(’ABOUT’, PROPERTY_OFF);

G. 如表需要用Forms来操作的话,最好不要为表字段定义默认值,通过Forms来定义,如表只在并发请求中用到,则最好定义,这样可使程序简单.

H. 级联删除及外键约束无法用于分布式数据库,因此需要编程来实现.

I. 在Forms 中用VARCHAR2(2000) 代替LONG类型字段.

J. 如果表中的字段名与Forms中的保留字一样,必须定义VIEW来解决冲突.

K. Forms中的Data Block 的Data Source用表还是视图的原则:

a) 单表的操作可用表作为Data Source.

b) 多表的操作应用视图作为Data Source,这样可减少SQL语句的传输,降低网络负载.

L. 如果基于VIEW来建Data Block, 用ROWID作为第一个字段

M. 如果基于VIEW来建Data Block, 须把Data Block的键模式改为”不可更新” , 并手工定义主键.

N. 不要在定义序列时使用”CYCLE”(即达到最大值时再从最小值重新计数).

O. 通过AD_DD包来注册表和字段. 用于弹性域的定义及ALERT的定义.

P. 如果表发生变化,须重新注册,顺序是先删除字段注册,再删除表注册,再重新注册表及字段.

Q. AD_DD API并不检查表和字段是否存在,所以定义时需保证与实际情况一致.

a) API如下:

procedure register_table ( p_appl_short_name in varchar2,

p_tab_name in varchar2,

p_tab_type in varchar2,

p_next_extent in number default 512,

p_pct_free in number default 10,

p_pct_used in number default 70);

procedure register_column ( p_appl_short_name in varchar2,

p_tab_name in varchar2,

p_col_name in varchar2,

p_col_seq in number,

p_col_type in varchar2,

p_col_width in number,

p_nullable in varchar2,

p_translate in varchar2,

p_precision in number default null,

p_scale in number default null);

procedure delete_table ( p_appl_short_name in varchar2,

p_tab_name in varchar2);

procedure delete_column ( p_appl_short_name in varchar2,

p_tab_name in varchar2,

p_col_name in varchar2);

b). Sample.

EXECUTE ad_dd.register_table(’FND’, ’CUST_FLEX_TEST’, ’T’,8, 10, 90);

EXECUTE ad_dd.register_column(’FND’, ’CUST_FLEX_TEST’,

’APPLICATION_ID’, 1, ’NUMBER’, 38, ’N’, ’N’);

EXECUTE ad_dd.register_column(’FND’, ’CUST_FLEX_TEST’,

’ID_FLEX_CODE’, 2, ’VARCHAR2’, 30, ’N’, ’N’);

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10359218/viewspace-677438/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-11-04

  • 博文量
    140
  • 访问量
    519116