我使用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的语法。我怎么能搞这个?
如果有可能我还需要获取列数据类型信息......
答案 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数据,它似乎知道如何“查看”所有表和列。