Muitas vezes se faz necessário descobrir como uma aplicação está interagindo com a base de dados, quais são os comandos gerados e também os dados que estão trafegando.
Uma das formas de descobrir isso no Oracle é através da auditoria, sendo possível configurar alguns objetos ou usuários que serão monitorados, armazenando o seu resultado em tabelas do banco de dados ou arquivos XML no sistema operacional.
Neste exemplo utilizamos o Oracle Enterprise Edition 10g release 2 e o programa SQL Developer para realizar consultas na base de dados.
Para direcionar a saída da auditoria para tabelas do banco de dados ou arquivos XML definimos o parâmetro de inicialização "audit_trail" com o valor "db,extended" ou "xml,extended", respectivamente. Este parâmetro é estático obrigando a base de dados ser reiniciada para que seu novo valor tenha efeito. A opção "extended" que informamos neste parâmetro é responsável por armazenar nos registros de auditoria os comandos SQL recebidos pelo banco bem como os valores das variáveis BIND, quando utilizadas.
Após isso precisamos definir quais objetos serão auditados, através do comando "audit". No nosso exemplo vamos auditar as operações de consulta, inserção, alteração e exclusão na tabela produto, localizada abaixo do usuário pos. Para isso executamos o seguinte:
audit select, insert, update, delete on pos.produto by access;
A opção by access força a criação de um registro de auditoria para cada acesso efetuado. Se for utilizada a opção by session apenas um registro de cada tipo de acesso será gerado.
Para desabilitar a auditoria destes objetos, utilize o comando noaudit:
noaudit select, insert, update, delete on pos.produto;
Para consultarmos os resultados da auditoria primeiro precisamos descobrir qual é o identificador de auditoria (AUDSID) da conexão que queremos monitorar. Para isso executamos a seguinte consulta:

Com posse deste valor filtramos nossa consulta. Quando o resultado fica armazenado no banco de dados (audit_trail=db,extended), consultamos a visão dba_audit_trail, conforme o exemplo a seguir:

Quando o resultado é armazenado em arquivos XML (audit_trail=xml,extended), verifique no servidor do banco de dados, dentro de uma pasta chamada "adump", abaixo da organização de diretórios do Oracle (Ex.: d:\oracle\product\10.2.0\admin\orcl\adump). Localize o arquivo XML que possua um elemento chamado "sessionid" com o mesmo valor que obtemos na consulta do identificador de auditoria (coluna AUDSID). Este será o arquivo que possuirá a auditoria da conexão que estamos analisando.
A seguir temos um exemplo deste arquivo XML aonde é possível identificar os comandos SQL e os valores das variáveis:

O elemento SQL Text armazena o comando SQL recebido pelo Oracle. Neste exemplo é possível observar que o comando utiliza quatro variáveis BIND, :X1, :X2, :X3 e :rid. Os valores que estão sendo passados para essas variáveis estão descritos no elemento SQL Bind, neste exemplo são, 15, Bolacha e PC, respectivamente. O último valor é o rowid do registro recém criado, que é retornado para a aplicação, neste caso, o client do Progress.
Mais detalhes sobre os comandos e conceitos aqui apresentados podem ser obtidos no site de documentações do Oracle.