jtf_rs_defresources_srp_v引起的问题 同义词无数据 基表有数据
今天搞了整一个上午。R12 Demo VIS中查询JTF.JTF_RS_SALESREPS有数据,但是查APPS.JTF_RS_SALESREPS_MO_V死活没数据。看了下object属性:SELECT * FROM all_objects WHERE object_name LIKE 'JTF_RS_SALESREPS%';APPS.JTF_RS_SALESREPS_MO_V是JTF.JTF_RS_SALESREPS的同义词,想是编译出的问题,开始重编:ALTER SYNONYM apps.JTF_RS_SALESREPS_MO_V COMPILE; 结果仍然没数据。。。上了metalink没找到结果。下午在一个帖子里无意中找到了类似的求助,解决方法很直接:DROP SYNONYM JTF_RS_SALESREPS_MO_V;CREATE SYNONYM JTF_RS_SALESREPS_MO_V FOR jtf.JTF_RS_SALESREPS; Bingo!~~问题解决了,看到数据了。。。具体原因上边说是原来的table被drop重建后造成的失效。。要重建synonym。残念~万恶的Oracle!具有MOAC的SYNONYM-JTF_RS_SALESREPS_MO_V(jtf_rs_salesreps的同义词,加了一个POLICY,实现MOAC)
好像在oracle erp 中是很常见的....例如: apps用户的RA_CUST_TRX_TYPES 和 RA_CUST_TRX_TYPES_ALL都是AR下RA_CUST_TRX_TYPES_ALL的同义词.但是RA_CUST_TRX_TYPES 不能查询出数据,而RA_CUST_TRX_TYPES_ALL可以查询出数据.为什么同样的同义词,会出现这样的情况?oracle 是怎么作到的?现在,我们这边的老大给出了答案,确实这样的同义词和我们之前的是不一样的,数据和环境有关系.初始化语句为BEGIN FND_GLOBAL.apps_initialize(user_id => 1116, -- resp_id => 50512, -- resp_appl_id => 222, -- security_group_id => null , server_id => null); MO_GLOBAL.INIT('SQLAP');mo_global.set_policy_context('A',null);end;mo_global.init('ONT');
declare v number(20);begin mo_global.init('ONT'); select salesrep_id into v from JTF_RS_SALESREPS_MO_V where rownum = 1; dbms_output.put_line(v); end;能打印出数据,原来需要写一个mo_global.init('ONT');