-- 新的開始(面經)

PLSQL - Block

1、如何根据一个字段,在一张表中抽出相同记录的数据,并且删除?

查询:
SELECT *
  FROM table_name AS b
 WHERE b.item1 IN (SELECT c.item1
                    FROM table_name AS c
                   GROUP BY c.item1
                  HAVING COUNT(c.item1) > 1); 
删除:
 DELETE FROM empo c
 WHERE c.name IN (SELECT n.name                      
                    FROM empo n
                   GROUP BY n.name
                  HAVING COUNT(n.name) > 1) ;
参照:<SQL查询重复数据和清除重复数据 >http://blog.csdn.net/rockyvan/article/details/2461385#comments

2、请说明FND_STANDARD.SET_WHO语句的代表意思?

     EBS在客户化表结构设计时,会建立5个WHO字段,记录用户信息。分别是:

  CREATE_BY  NUMBER,

  CREATE_DATE  DATE,

  LAST_UPDATE_BY  NUMBER,

  LAST_UPDATE_DATE DATE,

  LAST_UPDATE_LOGIN  NUMBER

  在FORM中使用属性类,WHO字段并不会自动赋值,必须自己在FORM中编写代码来完成这项工作.

  EBS提供了FND_STANDARD.SET_WHO函数,只需要在FORM的BLOCK级触发器PRE-INSERT、PRE-UPDATE中进行调用即可。

3、将全年级各个学科(语文、数学、英语)中排名前10的记录抽取出来?

PLSQL:

①、通过输入&PO参数(语数外)不同,查询出不同学科的前十名的成绩。

 

 ---------------------------------------------------------------------------------------- -------------------------------------------------------

row_num(partition xx,order by yy)

 

4、请说明fnd_request.submit_request的含义(FORM 或 PLSQL给予的参数个数不同),以及是否有返回值?

参照:http://chengyue2007.iteye.com/blog/1604061

http://www.cnblogs.com/quanweiru/p/3814964.html

FND_REQUEST.SUBMIT_REQUEST 函数是用来提交一个请求的,它返回一个NUMBER值(REQUEST_ID).具体调用如下: 

Package里面调用只需要传递需要的参数个数,因为它有默认值指示结束。

FORM中需填入参数:要写满105个,而且我们参数结束之后要用一个chr(0)来表示结束。

补充说明:

在用fnd_request.submit_request的时候,第五个参数用false,不要被参数名称误导。
这个函数有105个参数,前面五个定义请求本身,后面100个是传递给请求的具体参数,都是Char类型,
我们需要转换,默认值是chr(0),代表这个参数不用传递给调用的请求。

l_request_status := Fnd_Concurrent.Wait_For_Request(l_request_id,
 5,
 0,
 l_phase,
 l_status,
 l_dev_phase,
 l_dev_status,
 l_message);
 
IF l_request_status THEN
IF l_dev_status = 'NORMAL' THEN
NULL;
ELSE
Fnd_Message.Debug('请求运行不成功:'||l_dev_status);
RETURN;
END IF;
ELSE
Fnd_Message.Debug('请求未完成,无法查看报表内容!');
RETURN;
END IF;
Editor_Pkg.Report(l_request_id,'Y');

 

Form - Block

1、请简单描述Report Builder中,Frame和Report Frame的差别?

[Frame]:一般框架,方便报表布局。
[Reporting Frame]:报表框架,也就是报表体,用于布局Field在此框架中。

2、请问Form中LOV和Record Group是什么?

参照:http://blog.csdn.net/tavor/article/details/18845611

     List of values.(值列表)

     Record Group.(记录组)

记录组定义:

记录组是Oracle Forms内部的一种数据结构,它有类似于数据库表的行/列结构。尽管如此,但不像数据库表,记录组是属于form并定义于form中的单个对象。记录组并不是设计用于在应用运行时替代数据库表的。但是对于相对小的值列表或者,或者在客户端用于应用记录保存的中等数据结构时,记录组就是最优的选择。

 

3、请说明Form Builder中的Trigger,ON-UPDATE, 和POST-UPDATE有何不同?

参照:http://blog.csdn.net/papaya14/article/details/7638428

ON-UPDATE: 在修改完成后进行保存时。

POST-UPDATE:POST触发器,事件与数据源相互作用。

4、请简单说明在ERP中挂载一支客制的FORM步骤有哪些(5个)?

参照:http://www.itpub.net/thread-964352-1-1.html

Form 的挂载方法

    首步:新建一个EBS登录用户,新建客制化职责,并将职责与用户相关联。
    第一步:登陆到应用系统:应用开发者/应用/表单
    第二步、登陆到 应用开发者/应用/功能
    第三步、登陆到 系统管理员/安全性/责任/定义
    第四步 系统管理员/应用产品/菜单

Report的挂载方法

    第一步 应用开发者/并发/可执行
    第二步 应用开发者/并发/程序 
    第三步 系统管理员/安全性/职责/定义
    第四步 系统管理员/安全性/职责/请求

5、如何取得XML的数据模板(两种方法)?

Data Template的定义,

主要由四个基础部分组成:

Parameters

Data query

Triggers

Data structure
第一种:
  注册并发程序,输出式样为XML
  1.定义可执行 
  2.定义并发程序,输出式样为xml
  3.分配请求组
第二种:
  利用模板管理器上传rtf模板
  1.定义数据源(必须保证数据源编码和并发程序的简称相同)
• 注册数据源

    PATH: XML Publisher Administrator/Home/Data Definitions/Create Data Definition

• 注册模版,并和数据源关联

    PATH: XML Publisher Administrator/Home/Templates/Create Template

  2.定义并上传模板
 
posted @ 2014-09-21 15:49  dsiay  阅读(135)  评论(1)    收藏  举报