Jak uzyskać nazwy kolumn z tabeli w Oracle?
Muszę odpytywać bazę danych, aby uzyskać nazwy kolumn, nie mylić z danymi w tabeli. Na przykład, jeśli mam tabelę o nazwie EVENT_LOG
, która zawiera eventID
, eventType
, eventDesc
, i eventTime
, wtedy chciałbym odzyskać te nazwy pól z zapytania i nic więcej.
Znalazłem jak to zrobić w:
Ale muszę wiedzieć: Jak można to zrobić w wyroczni ?
25 answers
Możesz zapytać tabelę USER_TAB_COLUMNS o metadane kolumn tabeli.
SELECT table_name, column_name, data_type, data_length
FROM USER_TAB_COLUMNS
WHERE table_name = 'MYTABLE'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-16 23:57:18
W Sql Server...
SELECT [name] AS [Column Name]
FROM syscolumns
WHERE id = (SELECT id FROM sysobjects WHERE type = 'V' AND [Name] = 'Your table name')
Type = " V " dla widoków Type = " U " dla tabel
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-17 02:25:40
Możesz to zrobić:
describe EVENT_LOG
Lub
desc EVENT_LOG
Uwaga: dotyczy tylko wtedy, gdy znasz nazwę tabeli, a konkretnie Oracle.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-29 14:19:05
Dla SQL Server 2008 możemy użyć information_schema.kolumny do pobierania informacji o kolumnach
SELECT *
FROM information_schema.columns
WHERE table_name = 'Table_Name'
ORDER BY ordinal_position
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-23 15:16:48
Dla SQLite wierzę, że można użyć czegoś takiego jak:
PRAGMA table_info(table-name);
Wyjaśnienie z sqlite.org:
Ta pragma zwraca jeden wiersz dla każdej kolumny w nazwanej tabeli. Kolumny w zestawie wynikowym zawierają nazwę kolumny, typ danych, czy kolumna może mieć wartość NULL oraz domyślną wartość dla kolumny. Kolumna " pk " w zestawie wynikowym ma wartość zero dla kolumn, które nie są częścią klucza podstawowego i jest indeksem kolumny w kluczu głównym dla kolumn, które są część klucza głównego.
Zobacz też: Sqlite.org Pragma Table Info
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-09 05:13:01
Informacja ta jest przechowywana w ALL_TAB_COLUMNS
tabeli systemowej:
SQL> select column_name from all_tab_columns where table_name = 'DUAL';
DUMMY
Lub możesz DESCRIBE
tabelę, jeśli używasz SQL * PLUS:
SQL> desc dual
Name Null? Type
----------------------------------------------------- -------- ---------------------- -------------
DUMMY VARCHAR2(1)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-16 23:56:36
Inne odpowiedzi wystarczająco odpowiadają na pytanie, ale pomyślałem, że podzielę się dodatkowymi informacjami. Inne opisują składnię "opisz tabelę" w celu uzyskania informacji o tabeli. Jeśli chcesz uzyskać informacje w tym samym formacie, ale bez użycia opisz, możesz to zrobić:
SELECT column_name as COLUMN_NAME, nullable || ' ' as BE_NULL,
SUBSTR(data_type || '(' || data_length || ')', 0, 10) as TYPE
FROM all_tab_columns WHERE table_name = 'TABLENAME';
Prawdopodobnie nie ma większego znaczenia, ale napisałem to wcześniej i wydaje się pasować.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-01-17 02:10:17
Dla Oracle
SELECT column_name FROM user_tab_cols WHERE table_name=UPPER('tableName');
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-07 10:19:48
describe YOUR_TABLE;
W Twoim przypadku:
describe EVENT_LOG;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-01 06:24:14
select column_name,* from information_schema.columns
where table_name = 'YourTableName'
order by ordinal_position
Dla MySQL użyj
SELECT column_name
FROM information_schema.columns
WHERE
table_schema = 'Schema' AND table_name = 'Table_Name'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-20 06:30:56
Nawet to jest również jeden ze sposobów, w jaki możemy go użyć
select * from product where 1 != 1
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-25 16:18:15
Dla SQL Server:
SELECT [name] AS [Column Name]
FROM syscolumns
WHERE id = object_id('TABLE_NAME')
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-21 11:41:12
SELECT COLUMN_NAME 'all_columns'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='user';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-27 11:53:22
Możesz również spróbować tego, ale może to być więcej informacji, niż potrzebujesz:
sp_columns TABLE_NAME
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-18 23:16:45
Mysql
SHOW COLUMNS FROM a_table_named_users WHERE Field REGEXP 'user_id|user_name|user_pass'
To zwróci wynik podobny do tego:
Field | Type | Null | Key | Default | Extra
user_id int(8) NO PRI NULL auto_increment
user_name varchar(64) NO MUL NULL
user_pass varchar(64) NO NULL
Następnie, aby wyciągnąć wartości, możesz po prostu
fetch row[0]
Jest to również Świetne do dynamicznego przekazywania danych wejściowych, ponieważ wyrażenie regularne wymaga " / " DLA WIELU WEJŚĆ, ale jest również sposobem na oddzielenie danych i łatwe do przechowywania/przekazywania do klas/funkcji.
Spróbuj wrzucić fałszywe dane, jak również dla bezpieczeństwa podczas wysyłania i porównać to, co zostało zwrócone po otrzymaniu jakichkolwiek błędów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-21 19:23:27
W Oracle istnieją dwa widoki opisujące Kolumny:
DBA_TAB_COLUMNS opisuje kolumny wszystkich tabel, widoków i klastry w bazie danych.
USER_TAB_COLUMNS opisuje kolumny tabel, widoków i
klastry należące do bieżącego użytkownika. Ten widok nie wyświetla
Kolumna właściciela.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-06 09:03:17
Odpowiedź jest tutaj: http://php.net/manual/en/function.mysql-list-fields.php W Twoim przypadku użyłbym następującego kodu:
$result = mysql_query("SHOW COLUMNS FROM sometable");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
$fields = array();
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
$fields[] = $row['Field'];
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-09 15:39:45
SELECT A.COLUMN_NAME, A.* FROM all_tab_columns a
WHERE table_name = 'Your Table Name'
AND A.COLUMN_NAME = 'COLUMN NAME' AND a.owner = 'Schema'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-25 19:47:37
Możesz uruchomić to zapytanie
SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%%' --if you want to find specific column write here
ORDER BY schema_name, table_name;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-17 07:24:31
Po prostu wybierz pierwszy wiersz z tabeli, dla oracle: select * from <table name> where rownum = 1;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-24 13:09:30
Natknąłem się na to pytanie szukając dostępu do nazw kolumn na Teradata, więc dodam odpowiedź dla ich "smaku" SQL:
SELECT ColumnName
FROM DBC.Columns
WHERE DatabaseName='DBASE_NAME'
AND TableName='TABLE_NAME';
Informacja jest przechowywana w bazie dbase DBC.
Pobieranie typów danych jest trochę bardziej zaangażowane: Get column type using Teradata system tables
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:33:24
Spróbuj tego
select * from sys.all_columns c join sys.objects o on c.object_id=o.object_id where o.name = 'TABLENAME' and c.name like '%COLUMN NAME%'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-09 11:02:00
I did it like this
SELECT
TOP 0
*
FROM
Posts
Działa nawet w http://data.stackexchange.com czyje stoły służbowe nie znam!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-22 11:51:47
SELECT COLUMN_NAME
FROM YourDatabase.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'YourTableName'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-14 02:11:48