Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> data powstania tabeli - Oracle, Jak uzyskać informacje na temat konkretnej tabeli
Kwazi
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 22.11.2006

Ostrzeżenie: (0%)
-----


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?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?

Z góry dziękuje za uwagę...
Go to the top of the page
+Quote Post
KILIUSZKIN
post
Post #2





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 26.01.2006

Ostrzeżenie: (0%)
-----


Pomysł ad hoc:

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

Good luck!
Go to the top of the page
+Quote Post
Kwazi
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 22.11.2006

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Synaps
post
Post #4





Grupa: Zarejestrowani
Postów: 103
Pomógł: 0
Dołączył: 1.12.2003
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


  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.

Ten post edytował Synaps 23.11.2006, 09:03:02
Go to the top of the page
+Quote Post
Kwazi
post
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 22.11.2006

Ostrzeżenie: (0%)
-----


Dzięki Synaps, właśnie o coś takiego mi chodziło...
pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 23:30