Informix iSQL具有info tables;显示所有表的命令“ ”。 查看字段及其各自的数据类型的语法为“ info columns for table;”
info tables;
info columns for table;
是否有类似的命令显示所有表和所有字段的table.field?
使用首选的JOIN表示法:
SELECT TRIM(t.tabname) || '.' || TRIM(c.colname) AS table_dot_column FROM "informix".systables AS t JOIN "informix".syscolumns AS c ON t.tabid = c.tabid WHERE t.tabtype = 'T' AND t.tabid >= 100 ORDER BY t.tabname, c.colno;
或老式的“加入子句”表示法:
SELECT TRIM(t.tabname) || '.' || TRIM(c.colname) AS table_dot_column FROM "informix".systables AS t, "informix".syscolumns AS c WHERE t.tabid = c.tabid AND t.tabtype = 'T' AND t.tabid >= 100 ORDER BY t.tabname, c.colno;
假设您使用的是最新版本的IDS,则可以按未在选择列表中引用的列进行排序。如果您有投诉,请将订购列添加到选择列表中。
连接标准很明显;tabtype =’T’仅列出表,而不列出视图,同义词和systables中列出的其他此类项目;tabid> = 100仅列出在数据库中显式创建的表,而不列出系统目录。
这不包括类型信息-如果需要,您需要做更多的工作。您会发现一个文件$INFORMIXDIR/etc/xpg4_is.sql,其中包含与XPG4(X / Open标准)信息架构的旧版本的粗略近似(因此文件名)。在那里,有从功能等,以解码类型信息syscolumns.coltype和syscolumns.collength为可识别的字符串。但是,我强烈怀疑它不处理DISTINCT类型,也不处理其他用户定义的类型。我很高兴被证明是错误的,但是…如果您将该文件的相关部分添加到数据库中,那么您也应该能够获取类型信息。
$INFORMIXDIR/etc/xpg4_is.sql
syscolumns.coltype
syscolumns.collength
还要注意,ISQL和DB- Access中的所有INFO命令都是在前端模拟的,而不是在IDS服务器中执行的。基本上,程序接受请求并将其转换为更复杂的SQL语句。有关我的SQLCMD程序如何处理INFO语句,请参阅sqlinfo.ecSQLCMD的文件(可从IIUG Software Archive中获得)中的代码。(注意:SQLCMD的INFO输出格式与ISQL和DB- Access的INFO输出格式不同。)
sqlinfo.ec