Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como descobrir quando uma determinada tabela foi criada no Oracle?

SELECT created
  FROM dba_objects
 WHERE object_name = <<your table name>>
   AND owner = <<owner of the table>>
   AND object_type = 'TABLE'

informará quando uma tabela foi criada (se você não tiver acesso a DBA_OBJECTS, poderá usar ALL_OBJECTS assumindo que tem privilégios SELECT na tabela).

A resposta geral para obter carimbos de data/hora de uma linha, no entanto, é que você só pode obter esses dados se tiver adicionado colunas para rastrear essas informações (assumindo, é claro, que seu aplicativo também preencha as colunas). Existem vários casos especiais, no entanto. Se a DML aconteceu há relativamente pouco tempo (provavelmente nas últimas duas horas), você poderá obter os carimbos de data/hora de uma consulta de flashback. Se o DML aconteceu nos últimos dias (ou por quanto tempo você mantém seus logs arquivados), você pode usar o LogMiner para extrair os carimbos de data/hora, mas essa será uma operação muito cara, principalmente se você estiver obtendo carimbos de data/hora para muitas linhas. Se você construir a tabela com ROWDEPENDENCIES habilitado (não o padrão), você pode usar
SELECT scn_to_timestamp( ora_rowscn ) last_modified_date,
       ora_rowscn last_modified_scn,
       <<other columns>>
  FROM <<your table>>

para obter a data da última modificação e o SCN (número de alteração do sistema) para a linha. Por padrão, porém, sem ROWDEPENDENCES, o SCN está apenas no nível do bloco. O SCN_TO_TIMESTAMP A função também não será capaz de mapear SCNs para timestamps para sempre.