Saya perlu query database untuk mendapatkan nama kolom , jangan bingung dengan data dalam tabel. Sebagai contoh, jika saya memiliki tabel bernama EVENT_LOG
yang berisi eventID
, eventType
, eventDesc
, dan eventTime
, maka saya akan ingin mengambil nama-nama field dari query dan tidak ada yang lain.
Saya menemukan cara melakukan ini di:
Tapi saya perlu tahu: bagaimana ini bisa dilakukan di Oracle ?
USER_TAB_COLUMNS
keall_tab_columns
. Untuk menjadi 100% yakin tentang hasil, Anda bisa pemilik speficy.Di SQL Server ...
Ketik = 'V' untuk tampilan Ketik = 'U' untuk tabel
sumber
Kamu bisa melakukan ini:
atau
Catatan: hanya berlaku jika Anda tahu nama tabel dan khusus untuk Oracle.
sumber
Untuk SQL Server 2008, kita dapat menggunakan information_schema.columns untuk mendapatkan informasi kolom
sumber
INFORMATION_SCHEMA
tabel adalah tabel metadata standar ANSI. RDBMS modern yang bagus dan bagus akan memilikinya.Untuk SQLite, saya yakin Anda bisa menggunakan sesuatu seperti berikut:
Penjelasan dari sqlite.org:
Pragma ini mengembalikan satu baris untuk setiap kolom dalam tabel bernama. Kolom dalam kumpulan hasil mencakup nama kolom, tipe data, apakah kolom tersebut NULL atau tidak, dan nilai default untuk kolom tersebut. Kolom "pk" di set hasil adalah nol untuk kolom yang bukan bagian dari kunci utama, dan merupakan indeks dari kolom di kunci utama untuk kolom yang merupakan bagian dari kunci utama.
Lihat juga: Sqlite.org Info Meja Pragma
sumber
Informasi itu disimpan dalam
ALL_TAB_COLUMNS
tabel sistem:Atau Anda bisa
DESCRIBE
menggunakan tabel jika Anda menggunakan SQL * PLUS:sumber
ALL_TAB_COLUMNS
melalui Referensi Database Oracle resmi . Tampilan ini menjelaskan kolom dari tabel, tampilan, dan cluster yang dapat diakses oleh pengguna saat ini.select column_name from all_tab_columns where table_name = 'dbo.usertbl';
Jawaban lainnya cukup menjawab pertanyaan, tetapi saya pikir saya akan membagikan beberapa informasi tambahan. Lainnya menggambarkan sintaks "DESCRIBE table" untuk mendapatkan informasi tabel. Jika Anda ingin mendapatkan informasi dalam format yang sama, tetapi tanpa menggunakan DESCRIBE, Anda dapat melakukannya:
Mungkin tidak terlalu penting, tetapi saya menulisnya lebih awal dan sepertinya cocok.
sumber
Incorrect Syntax near '|'
kesalahanUntuk Oracle
sumber
sumber
Dalam kasus Anda:
sumber
Untuk MySQL, gunakan
sumber
Bahkan ini juga salah satu cara kita dapat menggunakannya
sumber
Untuk SQL Server:
sumber
sumber
Anda juga dapat mencoba ini, tetapi mungkin lebih banyak informasi daripada yang Anda butuhkan:
sumber
Mysql
Ini akan mengembalikan hasil seperti ini:
Kemudian untuk mencabut nilai-nilai yang Anda bisa cukup
Ini juga bagus untuk melewatkan input secara dinamis karena REGEXP membutuhkan '|' untuk banyak input, tetapi juga merupakan cara untuk memisahkan data dan mudah untuk menyimpan / meneruskan ke kelas / fungsi.
Coba lemparkan data dummy juga untuk keamanan saat mengirimnya dan bandingkan apa yang dikembalikan ketika menerima kesalahan.
sumber
Di Oracle, ada dua tampilan yang menggambarkan kolom:
DBA_TAB_COLUMNS menjelaskan kolom semua tabel, tampilan, dan cluster dalam database.
USER_TAB_COLUMNS menjelaskan kolom dari tabel, tampilan, dan
cluster yang dimiliki oleh pengguna saat ini. Tampilan ini tidak menampilkan
kolom PEMILIK.
sumber
Jawabannya ada di sini: http://php.net/manual/en/function.mysql-list-fields.php Saya akan menggunakan kode berikut dalam kasus Anda:
sumber
sumber
Anda dapat menjalankan kueri ini
sumber
Cukup pilih baris pertama dari tabel, untuk oracle:
select * from <table name> where rownum = 1;
sumber
Datang ke pertanyaan ini mencari akses ke nama kolom di Teradata, jadi saya akan menambahkan jawaban untuk 'rasa' mereka dari SQL:
Info tersebut disimpan dalam dbase DBC.
Mendapatkan tipe data sedikit lebih terlibat: Dapatkan tipe kolom menggunakan tabel sistem teradata
sumber
Coba ini
sumber
Saya melakukannya seperti ini
Ia berfungsi bahkan di http://data.stackexchange.com yang tabel layanannya tidak saya ketahui!
sumber
sumber