Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: data powstania tabeli - Oracle
Forum PHP.pl > Forum > Bazy danych > Oracle
Kwazi
Witam,
Mam pewien kłopot.
W swojej aplikacji php tworzę pewne tabele tymczasowe dla każdych raportowanych danych.
Każda z takich tabel nosi nazwę rozpoczynającą się słowem temp, a dalszą część stanowią wygenerowane losowo znaki: 'TEMP4CE4637A6'.
Może się zdarzyć jednak że te tabele zostaną jednak w bazie. Mój pomysł był taki aby przy każdym uruchomieniu skryptu usuwać takie tabele które powstały przed dniem dzisiejszym... doszedłem już do tego jak odnaleść nazwy wszystkich tych tabel(nie mogę ich usunąć wszystkich, bo te dziś powstałe mogą być właśnie używane).

select table_name from tabs where table_name like 'temp%';

TYLKO GDZIE ZNALEść INFO NA TEMAT KIEDY DANA TABELA ZOSTAłA UTORZONA?questionmark.gif?

Z góry dziękuje za uwagę...
KILIUSZKIN
Pomysł ad hoc:

Dodaj pole w tabeli tymczasowej o nazwie create_date i podczas tworzenia tabeli wpisuj tam bieżącą datę.

Good luck!
Kwazi
Brałem to pod uwagę i tak najprawdopodbniej zrobię, tylko że wiąże się to z kilkoma zmianami w skrypcie, a wolałbym tego uniknąć, no ale tak to faktyczni będę musiał chyba zrobić...

mimo wszystko, wielkie dzięki za zainteresowanie
Synaps
  1. SELECT owner,object_name,created FROM all_objects WHERE object_type='TABLE'


Zwraca liste wszystkich tabel w bazie wraz z ownerem i czasem stworzenia, można ograniczyć dla danej schema przez filtr na owner.


Rozwiązanie twojego problemu

  1. BEGIN FOR obj_row IN (SELECT owner,object_name,created FROM all_objects WHERE object_type='TABLE' AND trunc(created) < trunc(sysdate) AND object_name LIKE 'TEMP%' AND owner ='_TUTAJ_TWOJ_USER')
  2. LOOP
  3. EXECUTE IMMEDIATE DROP TABLE obj_row.object_name;
  4. END LOOP;
  5. END;
  6. /


W tym plsql założenie jest takie iż nie masz innych tabel tylko tymczasowe zaczynające się od TEMP ;-) ale z tym sobie chyba poradzisz. Zanim to uruchomisz , sprawdź czy select z cursora zwraca tylko żądane tabele.
Kwazi
Dzięki Synaps, właśnie o coś takiego mi chodziło...
pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.