Hay muchos datos que se pueden obtener de una columna, como se muestra en este ejemplo:

SELECT
    R.RDB$FIELD_NAME            AS NombreColumna,
    R.RDB$DESCRIPTION           AS DescripcionColumna,
    R.RDB$DEFAULT_VALUE         AS ValorPorDefecto,
    R.RDB$NULL_FLAG             AS ColumnaNoNula,
    F.RDB$FIELD_LENGTH          AS LongitudColumna,
    F.RDB$FIELD_PRECISION       AS PrecisionColumna,
    F.RDB$FIELD_SCALE           AS EscalaColumna,
    CASE F.RDB$FIELD_TYPE
        WHEN   7 THEN 'SMALLINT'
        WHEN   8 THEN 'INTEGER'
        WHEN   9 THEN 'QUAD'
        WHEN  10 THEN 'FLOAT'
        WHEN  11 THEN 'D_FLOAT'
        WHEN  12 THEN 'DATE'
        WHEN  13 THEN 'TIME'
        WHEN  14 THEN 'CHAR'
        WHEN  16 THEN 'INT64'
        WHEN  27 THEN 'DOUBLE'
        WHEN  35 THEN 'TIMESTAMP'
        WHEN  37 THEN 'VARCHAR'
        WHEN  40 THEN 'CSTRING'
        WHEN 261 THEN 'BLOB'
        ELSE 'UNKNOWN'
    END                         AS TipoColumna,
    F.RDB$FIELD_SUB_TYPE        AS SubTipoColumna,
    COLL.RDB$COLLATION_NAME     AS CollationColumna,
    CSET.RDB$CHARACTER_SET_NAME AS CharsetColumna
 FROM
     RDB$RELATION_FIELDS R
 LEFT JOIN
     RDB$FIELDS F
         ON R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME
 LEFT JOIN
     RDB$COLLATIONS COLL
         ON R.RDB$COLLATION_ID = COLL.RDB$COLLATION_ID
 LEFT JOIN
     RDB$CHARACTER_SETS CSET
        ON F.RDB$CHARACTER_SET_ID = CSET.RDB$CHARACTER_SET_ID
WHERE
    R.RDB$RELATION_NAME='ALUMNOS'
ORDER BY
    R.RDB$FIELD_POSITION

Con esta consulta puedes saber todo lo que necesitas de cada columna de la tabla ALUMNOS. Por supuesto que tú escribirás el nombre de la tabla que te interesa.

Artículos relacionados:

El índice del blog Firebird21

El foro del blog Firebird21

Anuncios