一、Xla_glt*在出现在日记账导入中的阶段
与R11使用gl_interface表不同,R12中大部分情况下使用的是XLA_GLT_<groupId>表;子帐传送到总账的过程中,会动态生成GL为schema的xla_glt_<groupId>表,这些表设计时是为了方便传送总帐异常时的问题追踪,因为他们在期间未关闭时不会被自动删除,一直保留到该期间完全关闭。
二、Xla_glt_<groupId>和GL_interface的区别
R12中两种接口表是并存的,在特定情况下使用其中某种方式。
例如
对于应付发票和应收事务处理,如果我们在发票界面使用ONLINE MODE创建会计科目,并选择最终过账,这里的日记账导入操作使用的就是GL_INTERFACE。
当我们通过提交创建会计科目请求,参数传送到总账选Y或者提交将日记账分录传动到GL请求,日记账导入使用的是XLA_GLT_<group_Id>
三、Xla_glt_<groupId>的清理
查看系统中所有xla_glt表
SELECT dbj.object_name, dbj.owner, dbj.created FROM dba_objects dbj WHERE dbj.object_name LIKE 'XLA_GLT_%' AND dbj.object_type = 'TABLE' AND trunc(dbj.created) <= SYSDATE ORDER BY trunc(dbj.created) ASC
查看表占用空间
SELECT --segment_name, SUM(bytes) / 1024 / 1024 mbytese FROM dba_segments WHERE segment_type = 'TABLE' AND segment_name LIKE 'XLA_GLT_%' --GROUP BY segment_name;
清理程序:清除由 Oracle Subledger Accounting 创建的临时日记帐导入接口表
请求参数中终止日期的说明:
运行请求的时候会输入一个终止日期DATE1,请求日志中还会看到一个日期DATE2。
这两个日期之间的关系是:截至到DATE1,最后一个已关闭期间的结束日期为DATE2
SELECT gps.end_date DATE2 FROM gl_period_statuses gps WHERE gps.ledger_id = 2047 AND gps.application_id = 101 AND gps.effective_period_num = (SELECT MAX(effective_period_num) FROM gl_period_statuses gps WHERE gps.ledger_id = 2047 AND gps.application_id = 101 AND gps.closing_status = 'C' AND gps.end_date <= to_date(DATE1, 'yyyy-mm-dd'))
可能出现的情况:
运行完清理请求,xla_glt*还有很多表没有清理,这是我们需要获取这些表所对应的帐套、期间是否已经关闭,只要表中存在未关闭的期间,那么没清理干净就属于正常现象。
获取所有xla_glt表帐套、期间状态的sqlplus脚本:
set heading off feedback off pagesize 999 spool purg.sql SELECT 'select DISTINCT ''' || dbj.object_name || '''|| '','' || t.ledger_id || '','' || gps.period_name || '','' || gps.closing_status from ' || dbj.owner || '.' || dbj.object_name || ' t,gl_period_statuses gps WHERE t.ledger_id = gps.ledger_id AND gps.period_name = t.period_name AND gps.application_id = 101;' FROM dba_objects dbj WHERE dbj.object_name LIKE 'XLA_GLT_%' AND dbj.object_type = 'TABLE' AND trunc(dbj.created) <= SYSDATE; spool off
生成所有xla_glt的sql之后,再用相同办法,生成统计信息
set heading off feedback off pagesize 999 spool xla_glt统计.csv @purg.sql spool off
如果存在虽然期间已经关闭,但是运行完请求并没有被清理的话,依据metalink:
bug 16706664 - rew:purge temporary journal import interface tables created by subledger account ,检查是否已经打了该patch,如果已经打了,则最好求助oracle服务。