Muszę wysłać zapytanie do bazy danych, aby uzyskać nazwy kolumn , aby nie pomylić ich z danymi w tabeli. Na przykład, jeśli mam tabeli nazwie EVENT_LOG
, która zawiera eventID
, eventType
, eventDesc
, i eventTime
, a potem będzie chciał odzyskać te nazwy pól z zapytania i nic innego.
Znalazłem, jak to zrobić w:
Ale muszę wiedzieć: jak można to zrobić w Oracle ?
USER_TAB_COLUMNS
naall_tab_columns
. Aby mieć 100% pewności co do wyniku, możesz speficywać właściciela.W SQL Server ...
Wpisz = „V” dla widoków Wpisz = „U” dla tabel
źródło
Możesz to zrobić:
lub
Uwaga: dotyczy tylko jeśli znasz nazwę tabeli, a konkretnie dla Oracle.
źródło
W przypadku SQL Server 2008 możemy użyć information_schema.columns do uzyskania informacji o kolumnie
źródło
INFORMATION_SCHEMA
tabele są standardowymi tabelami metadanych ANSI. Każdy dobry, nowoczesny RDBMS będzie je miał.W przypadku SQLite uważam, że możesz użyć czegoś takiego:
Objaśnienie z sqlite.org:
Ta pragma zwraca jeden wiersz dla każdej kolumny w nazwanej tabeli. Kolumny w zestawie wyników zawierają nazwę kolumny, typ danych, czy kolumna może mieć wartość NULL, oraz wartość domyślną dla kolumny. Kolumna „pk” w zestawie wyników wynosi zero dla kolumn, które nie są częścią klucza podstawowego, i jest indeksem kolumny w kluczu podstawowym dla kolumn, które są częścią klucza podstawowego.
Zobacz także: Sqlite.org Pragma Table Info
źródło
Informacje te są przechowywane w
ALL_TAB_COLUMNS
tabeli systemowej:Lub możesz
DESCRIBE
tabeli, jeśli używasz SQL * PLUS:źródło
ALL_TAB_COLUMNS
pośrednictwem oficjalnej bazy danych Oracle . Ten widok opisuje kolumny tabel, widoków i klastrów dostępnych dla bieżącego użytkownika.select column_name from all_tab_columns where table_name = 'dbo.usertbl';
Inne odpowiedzi w wystarczający sposób odpowiadają na pytanie, ale pomyślałem, że podzielę się dodatkowymi informacjami. Inni opisują składnię „tabeli DESCRIBE” w celu uzyskania informacji o tabeli. Jeśli chcesz uzyskać informacje w tym samym formacie, ale bez korzystania z DESCRIBE, możesz:
Prawdopodobnie nie ma to większego znaczenia, ale napisałem to wcześniej i wydaje się pasować.
źródło
Incorrect Syntax near '|'
Dla Oracle
źródło
źródło
W Twoim przypadku :
źródło
W przypadku MySQL użyj
źródło
Nawet w ten sposób możemy to wykorzystać
źródło
W przypadku programu SQL Server:
źródło
źródło
Możesz także spróbować tego, ale może to być więcej informacji niż potrzebujesz:
źródło
MySQL
To zwróci wynik mniej więcej taki:
Następnie, aby wyciągnąć wartości, możesz po prostu
Jest to również świetne do dynamicznego przekazywania danych wejściowych, ponieważ REGEXP potrzebuje „|” dla wielu danych wejściowych, ale jest także sposobem na utrzymanie oddzielności danych i łatwego przechowywania / przekazywania do klas / funkcji.
Spróbuj też wrzucić fałszywe dane dla bezpieczeństwa podczas wysyłania i porównaj, co zostało zwrócone po otrzymaniu jakichkolwiek błędów.
źródło
W Oracle istnieją dwa widoki opisujące kolumny:
DBA_TAB_COLUMNS opisuje kolumny wszystkich tabel, widoków i klastrów w bazie danych.
USER_TAB_COLUMNS opisuje kolumny tabel, widoków i
klastrów należących do bieżącego użytkownika. Ten widok nie wyświetla
kolumny WŁAŚCICIEL.
źródło
Odpowiedź jest tutaj: http://php.net/manual/en/function.mysql-list-fields.php W twoim przypadku użyłbym następującego kodu:
źródło
źródło
możesz uruchomić to zapytanie
źródło
Po prostu wybierz pierwszy wiersz z tabeli, dla wyroczni:
select * from <table name> where rownum = 1;
źródło
Przeszedłem przez to pytanie, szukając dostępu do nazw kolumn na Teradata, więc dodam odpowiedź dla ich „smaku” SQL:
Informacje są przechowywane w bazie danych DBC.
Pobieranie typów danych jest nieco bardziej zaangażowane: Uzyskaj typ kolumny za pomocą tabel systemowych teradata
źródło
Spróbuj tego
źródło
Zrobiłem to w ten sposób
Działa nawet w http://data.stackexchange.com, których tabel serwisowych nie jestem świadomy!
źródło
źródło