sql >> Databáze >  >> RDS >> Oracle

Jak zjistit, kdy byla v Oracle vytvořena konkrétní tabulka?

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

vám řekne, kdy byla tabulka vytvořena (pokud nemáte přístup k DBA_OBJECTS, můžete místo toho použít ALL_OBJECTS za předpokladu, že máte pro tabulku oprávnění SELECT).

Obecnou odpovědí na získávání časových razítek z řádku však je, že tato data můžete získat pouze tehdy, pokud jste přidali sloupce pro sledování těchto informací (samozřejmě za předpokladu, že vaše aplikace vyplní také sloupce). Existují však různé speciální případy. Pokud k DML došlo relativně nedávno (s největší pravděpodobností v posledních několika hodinách), měli byste být schopni získat časová razítka z flashback dotazu. Pokud k DML došlo v posledních několika dnech (nebo jak dlouho archivované protokoly uchováváte), můžete použít LogMiner k extrahování časových razítek, ale to bude velmi nákladná operace, zejména pokud získáváte časová razítka pro mnoho řádků. Pokud sestavujete tabulku s povoleným ROWDEPENDENCIES (není výchozí), můžete použít

SELECT scn_to_timestamp( ora_rowscn ) last_modified_date,
       ora_rowscn last_modified_scn,
       <<other columns>>
  FROM <<your table>>

abyste získali datum poslední úpravy a SCN (číslo systémové změny) pro řádek. Ve výchozím nastavení je však bez ROWDEPENDENCIES SCN pouze na úrovni bloku. SCN_TO_TIMESTAMP Funkce také nebude schopna mapovat SCN na časová razítka navždy.



  1. Jak nastavit počáteční hodnotu a automatický přírůstek v MySQL?

  2. Používání tabulek JavaFX k organizaci dat

  3. Sloučit tabulku a protokol změn do zobrazení v PostgreSQL

  4. Jak interpretovat hodnotu txid_current() PosgreSQL