Undrop smazané tabulky

Pokud se smaže tabulka, je možné, že není vše ztraceno. V Oracle SQL je možná funkce recycle_bin – způsob koše v operačním systému.

Pokud je zapnuto, tak se můžeme pokusit tabulku v něm nalézt.

Info o smazaných objektech lze nalézt buď v globálním koši nebo v uživatelském.

Select * from DBA_RECYCLEBIN; — je třeba mít admin práva
nebo
Select * from USER_RECYCLEBIN;

Zde dostaneme obsah koše.

Důležitý sloupec je CAN_UNDROP – jestli lze obnovit.

Můžeme si udělat náhled na data tabulky pomocí OBJECT_NAME (uvádí se vždy v dvojitých uvozovkách)

Select * from “BIN$aLDu7ckKHnHgVJDiuqntGA==$0“

Způsob obnovení je pomocí příkazu FLASHBACK TABLE (společně s TO BEFORE DROP = stav pře smazáním). Lze buď použít název tabulky ORIGINAL_NAME nebo OBJECT_NAME

FLASHBACK TABLE TEST_TMP TO BEFORE DROP;
nebo
FLASHBACK TABLE “BIN$gk3lsj/3akk5hg3j2lkl5j3d==$0“ TO BEFORE DROP;

Pokud je název tabulky v koši jedinečný stačí použít jeho, pokud je tabulek více použijte OBJECT_NAME. Pak je vhodné použít RENAME aby se z názvu objektu stal název tabulky.

FLASHBACK TABLE “BIN$gk3lsj/3akk5hg3j2lkl5j3d==$0“ TO BEFORE DROP
RENAME TO TEST_TMP_BACK;

Příspěvek byl publikován v rubrice Oracle SQL. Můžete si uložit jeho odkaz mezi své oblíbené záložky.