Shariq
8.10.2003, 07:47:39
Witam, mam problem z wyciaganiem wybranych nazw tabel z bazy danych Oracle. Chce wyciagnac nazwy tabel i zrobic z nich liste, ale do listy, ktora mnie interesuje, dolaczane sa rowniez tabele systemowe (to takie moje niezbyt profesjonalne nazewnictwo) w stylu REPCAT$_SNAPGROUP, DEF$_ERROR, AQ$_QUEUES i jeszcze jakies dwadziescia innych, podobnie ponazywanych i zawierajacych $ w nazwie. Planowalem uzyc funkcji stristr, aby przy zczytywaniu nazwy tabeli sprawdzic, czy dana nazwa zawiera $ i jesli nie, to dolaczyc ja do listy wyswietlanych, a jak tak to ja po prostu pominac.
Wydaje mi sie, ze koncepcyjnie powinno byc wszystko wporzadku, jednak nie do konca wiem, jak to rozwiazanie zastosowac w praktyce. Jesli sa inne, optymalniejsze rozwiazania, to prosilbym o podzielenie sie nimi na forum. Z gory dziekuje za pomoc.
Pozdrawiam,
shariq
php Poczatkujacy (?) >> Bazy Danych
Nie mam w tej chwili dostepu do Oracla ale sprawdz czy to zapytanie zwroci liste bez kolumn systemowych:
[sql:1:973a232372]SELECT column_name
FROM all_tab_columns
WHERE table_name = "<nazwa twojej tabeli>";[/sql:1:973a232372]
Shariq
9.10.2003, 07:59:58
Cytat
...Nie mam w tej chwili dostepu do Oracla ale sprawdz czy to zapytanie zwroci liste bez kolumn systemowych...
Owszem, zwróciło. Tylko nie do końca jest to to, czego potrzebowałem. Zamiast listy kolumn bez kolumn systemowych potrzebuję listę tabel mojej bazy bez tabel systemowych. Poniżej wkleiłem kod, który chce wykorzystać, jednak nie do końca wiem czym mam zastąpić "user_tables", tak aby dało podobny efekt do Twojego "all_tab_columns". Po wyświetleniu wszystkich tabel moją metodą do listy dopisują się wspomniane juz tabele systemowe.
[sql:1:92fe8c59f4]
SELECT table_name
FROM user_tables
ORDER BY table_name[/sql:1:92fe8c59f4]
Shariq
13.10.2003, 09:35:23
Ok, juz sobie sam poradzilem. Problemem nie bylo bledne polecenie SQL'a, tylko dodatkowe tabele, ktore utworzyly sie samoistnie przy tworzeniu uzytkownika. Skladnia, ktora wkleilem w poprzednim poscie jest wpelni sprawna. Dzieki za pomoc