Necesito consultar la base de datos para obtener los nombres de las columnas , no confundirlos con los datos de la tabla. Por ejemplo, si tengo una tabla llamada EVENT_LOG
que contiene eventID
, eventType
, eventDesc
, y eventTime
, a continuación, me gustaría recuperar esos nombres de los campos de la consulta y nada más.
Encontré cómo hacer esto en:
Pero necesito saber: ¿cómo se puede hacer esto en Oracle ?
USER_TAB_COLUMNS
aall_tab_columns
. Para estar 100% seguro sobre el resultado, puede especular al propietario.En SQL Server ...
Tipo = 'V' para vistas Tipo = 'U' para tablas
fuente
Puedes hacerlo:
o
Nota: solo aplicable si conoce el nombre de la tabla y específicamente para Oracle.
fuente
Para SQL Server 2008, podemos usar information_schema.columns para obtener información de columna
fuente
INFORMATION_SCHEMA
tablas son las tablas de metadatos estándar ANSI. Cualquier buen RDBMS moderno los tendrá.Para SQLite, creo que puede usar algo como lo siguiente:
Explicación de sqlite.org:
Este pragma devuelve una fila para cada columna en la tabla con nombre. Las columnas en el conjunto de resultados incluyen el nombre de la columna, el tipo de datos, si la columna puede ser NULL o no, y el valor predeterminado para la columna. La columna "pk" en el conjunto de resultados es cero para las columnas que no forman parte de la clave primaria, y es el índice de la columna en la clave primaria para las columnas que forman parte de la clave primaria.
Ver también: Sqlite.org Pragma Table Info
fuente
Esa información se almacena en la
ALL_TAB_COLUMNS
tabla del sistema:O podría
DESCRIBE
usar la tabla si está utilizando SQL * PLUS:fuente
ALL_TAB_COLUMNS
través de la Referencia oficial de Oracle Database . Esta vista describe las columnas de las tablas, vistas y clústeres accesibles para el usuario actual.select column_name from all_tab_columns where table_name = 'dbo.usertbl';
Las otras respuestas responden suficientemente la pregunta, pero pensé que compartiría información adicional. Otros describen la sintaxis "DESCRIBIR tabla" para obtener la información de la tabla. Si desea obtener la información en el mismo formato, pero sin usar DESCRIBE, puede hacer lo siguiente:
Probablemente no importa mucho, pero lo escribí antes y parece encajar.
fuente
Incorrect Syntax near '|'
errorPara Oracle
fuente
fuente
En tu caso :
fuente
Para MySQL, use
fuente
Incluso esta es también una de las formas en que podemos usarlo
fuente
Para SQL Server:
fuente
fuente
También podría intentar esto, pero podría ser más información de la que necesita:
fuente
Mysql
Esto devolverá un resultado algo como esto:
Luego, para extraer los valores, simplemente puede
Esto también es excelente para pasar entradas dinámicamente ya que REGEXP necesita el '|' para múltiples entradas, pero también es una forma de mantener los datos separados y fáciles de almacenar / pasar a clases / funciones.
Intente incluir datos ficticios también por seguridad al enviarlos y compare lo que se devolvió al recibir cualquier error.
fuente
En Oracle, hay dos vistas que describen columnas:
DBA_TAB_COLUMNS describe las columnas de todas las tablas, vistas y clústeres en la base de datos.
USER_TAB_COLUMNS describe las columnas de las tablas, vistas y
clústeres propiedad del usuario actual. Esta vista no muestra la
columna PROPIETARIO.
fuente
La respuesta está aquí: http://php.net/manual/en/function.mysql-list-fields.php . Usaría el siguiente código en su caso:
fuente
fuente
puedes ejecutar esta consulta
fuente
Simplemente seleccione la primera fila de la tabla, para Oracle:
select * from <table name> where rownum = 1;
fuente
Encontré esta pregunta buscando acceso a los nombres de columna en Teradata, así que agregaré la respuesta para su 'sabor' de SQL:
La información se almacena en la base de datos DBC.
Obtener tipos de datos es un poco más complicado: obtener el tipo de columna usando tablas del sistema teradata
fuente
Prueba esto
fuente
Lo hice asi
Funciona incluso en http://data.stackexchange.com cuyas tablas de servicios no conozco.
fuente
fuente