列出Omnis数据库中的表

时间:2014-08-12 12:54:14

标签: sql

我使用SSIS将数据从Omnis数据库迁移到SQL Server。我可以使用ODBC驱动程序和查询表连接Omnis数据库,但我想自动化该过程,因此我需要使用sql语句从数据库中检索所有表。在其他数据库上,我通常会这样做:

在MySQL下我会做

SHOW TABLES
postgresql下的

SELECT table_name
FROM information_schema.tables
ORDER BY table_schema,table_name;

但是不知道Omnis Db的语法。我怎么能搞这个?

如果有可能我还需要获取列数据类型信息......

2 个答案:

答案 0 :(得分:0)

我是这样做的:

_odConn.Open(); // Where this is my Omnis Odbc driver connection object

var tableDT = _odConn.GetSchema("TABLES");
foreach (DataRow r in tableDT.Rows)
{
   Console.WriteLine("Database: " + r[1].ToString()); // This will always be "OMNIS"
   Console.WriteLine("Table Name: " + r[2].ToString()); // This is your table name, ie, "ACTIVITY"
   Console.WriteLine("Object Type: " + r[3].ToString()); // This will always be "TABLE"
}

要获取列定义列表,请执行相同操作但使用GetSchema("COLUMNS")。据我所知,每个列的内容都没有记录,但这里是我使用的:

column #   Content
3          Column Name
5          DataType
6          Precision (or length)
11         Comment or Description
16         Ordinal position of column

答案 1 :(得分:0)

您可以尝试使用Excel链接到ODBC数据,它似乎知道如何“查看”所有表和列。