Ich muss die Datenbank abfragen, um die Spaltennamen zu erhalten , und darf nicht mit den Daten in der Tabelle verwechselt werden. Zum Beispiel, wenn ich eine Tabelle mit dem Namen habe , EVENT_LOG
das enthält eventID
, eventType
, eventDesc
, und eventTime
, dann würde ich mag sonst diese Feldnamen aus der Abfrage und nichts holen.
Wie das geht, habe ich gefunden in:
Aber ich muss wissen: Wie kann das in Oracle gemacht werden ?
USER_TAB_COLUMNS
zuall_tab_columns
. Um 100% sicher über das Ergebnis zu sein, könnten Sie einen besonderen Besitzer haben.In SQL Server ...
Typ = 'V' für Ansichten Typ = 'U' für Tabellen
quelle
Du kannst das:
oder
Hinweis: Nur anwendbar, wenn Sie den Tabellennamen kennen und speziell für Oracle.
quelle
Für SQL Server 2008 können wir information_schema.columns verwenden, um Spalteninformationen abzurufen
quelle
INFORMATION_SCHEMA
Tabellen die ANSI-Standardmetadatentabellen sind. Jedes gute, moderne RDBMS wird sie haben.Für SQLite können Sie meines Erachtens Folgendes verwenden:
Erklärung von sqlite.org:
Dieses Pragma gibt eine Zeile für jede Spalte in der benannten Tabelle zurück. Zu den Spalten in der Ergebnismenge gehören der Spaltenname, der Datentyp, ob die Spalte NULL sein kann oder nicht, und der Standardwert für die Spalte. Die Spalte "pk" in der Ergebnismenge ist Null für Spalten, die nicht Teil des Primärschlüssels sind, und der Index der Spalte im Primärschlüssel für Spalten, die Teil des Primärschlüssels sind.
Siehe auch: Sqlite.org Pragma Table Info
quelle
Diese Informationen werden in der
ALL_TAB_COLUMNS
Systemtabelle gespeichert :Oder Sie könnten
DESCRIBE
die Tabelle, wenn Sie SQL * PLUS verwenden:quelle
ALL_TAB_COLUMNS
über die offizielle Oracle- Datenbankreferenz . Diese Ansicht beschreibt die Spalten der Tabellen, Ansichten und Cluster, auf die der aktuelle Benutzer zugreifen kann.select column_name from all_tab_columns where table_name = 'dbo.usertbl';
Die anderen Antworten beantworten die Frage ausreichend, aber ich dachte, ich würde einige zusätzliche Informationen teilen. Andere beschreiben die Syntax "DESCRIBE table", um die Tabelleninformationen abzurufen. Wenn Sie die Informationen im gleichen Format erhalten möchten, jedoch ohne DESCRIBE, können Sie Folgendes tun:
Wahrscheinlich spielt es keine Rolle, aber ich habe es früher geschrieben und es scheint zu passen.
quelle
Incorrect Syntax near '|'
Für Oracle
quelle
quelle
In deinem Fall :
quelle
Verwenden Sie für MySQL
quelle
Auch dies ist eine der Möglichkeiten, wie wir es verwenden können
quelle
Für SQL Server:
quelle
quelle
Sie können dies auch versuchen, aber es sind möglicherweise mehr Informationen als Sie benötigen:
quelle
MySQL
Dies ergibt ein Ergebnis wie das folgende:
Dann können Sie die Werte einfach herausziehen
Dies ist auch ideal für die dynamische Übergabe von Eingaben, da der REGEXP das '|' benötigt. für mehrere Eingaben, ist aber auch eine Möglichkeit, Daten getrennt zu halten und einfach zu speichern / an Klassen / Funktionen zu übergeben.
Versuchen Sie, aus Sicherheitsgründen beim Senden auch Dummy-Daten einzugeben, und vergleichen Sie, was beim Empfang von Fehlern zurückgegeben wurde.
quelle
In Oracle gibt es zwei Ansichten, die Spalten beschreiben:
DBA_TAB_COLUMNS beschreibt die Spalten aller Tabellen, Ansichten und Cluster in der Datenbank.
USER_TAB_COLUMNS beschreibt die Spalten der Tabellen, Ansichten und
Cluster, die dem aktuellen Benutzer gehören. In dieser Ansicht wird die
Spalte EIGENTÜMER nicht angezeigt .
quelle
Die Antwort ist hier: http://php.net/manual/en/function.mysql-list-fields.php Ich würde in Ihrem Fall den folgenden Code verwenden:
quelle
quelle
Sie können diese Abfrage ausführen
quelle
Wählen Sie einfach die erste Zeile aus der Tabelle für Orakel:
select * from <table name> where rownum = 1;
quelle
Ich bin auf diese Frage gestoßen und habe nach Zugriff auf Spaltennamen in Teradata gesucht. Daher werde ich die Antwort für die SQL-Variante hinzufügen:
Die Informationen werden in der DBC-Datenbank gespeichert.
Das Abrufen von Datentypen ist etwas komplizierter : Abrufen des Spaltentyps mithilfe von Teradata-Systemtabellen
quelle
Versuche dies
quelle
Ich habe es so gemacht
Es funktioniert sogar unter http://data.stackexchange.com, dessen Servicetabellen mir nicht bekannt sind!
quelle
quelle