PROBLEMA: quando eu faço select num SINONIMO do EBS R12 ele vem vazio ! Mas tem dados na tabela. (Veja bem, eu não estou falando duma VIEW, que tem um where lá embaixo!! )
Aí vai algo que inicialmente eu achei bizarro, vejam, eu tenho um SINONIMO apontando pra uma TABELA.
SQL> SELECT OWNER, OBJECT_NAME, OBJECT_TYPE
2 FROM ALL_OBJECTS
3 WHERE OBJECT_NAME='PO_RELEASES';
OWNER OBJECT_NAME OBJECT_TYPE
------------------------------ ------------------------------ -------------------
APPS PO_RELEASES SYNONYM
SQL>
SQL> SELECT * FROM ALL_SYNONYMS
2 WHERE SYNONYM_NAME='PO_RELEASES';
OWNER SYNONYM_NAME TABLE_OWNER TABLE_NAME
------------------------------ ------------------------------ ------------------------------ ------------------------------
APPS PO_RELEASES PO PO_RELEASES_ALL
SQL>
Agora o show: Primeiro vou fazer select na tabela. TEM DADOS:
SQL> select count(*) from po_releases_all;
COUNT(*)
----------
23
SQL>
SQL> select count(*) from po_releases;
COUNT(*)
----------
0
SQL>
QUAL É A EXPLICAÇÃO ???
Este documento explica muito bem:
http://www.ltsolutions.eu/r12_pdf/R12_M ... ontrol.pdf
Isso é algo do MULTI-ORG do EBS R12. Se chama VPD (Virtual private database).
EM RESUMO: É obrigatório executar o seguinte comando antes de fazer select nas views e sinônimos do EBS:
begin
mo_global.init('PO');
end;