Banco de dados privado virtual Oracle pode ser o que você procura. Do manual:
Você pode obter o processo e o texto da consulta em SYS_CONTEXT . Por exemplo,
sys_context('userenv', 'current_sql')
e sys_context('userenv', 'module')
. Você também pode precisar usar GV$SESSION
para obter mais informações. No entanto, acho que você deve tentar evitar o VPD, se possível. É extremamente confuso ter todas as suas instruções SQL convertidas silenciosamente em segundo plano. Isso pode dificultar muito o desenvolvimento e a solução de problemas.
Atualizar
A SQL Translation Framework recurso no Oracle 12c provavelmente seria a melhor solução para esse problema.