【问题标题】:Execute the same SQL query across multiple ODBC databases跨多个 ODBC 数据库执行相同的 SQL 查询
【发布时间】:2015-05-29 21:05:59
【问题描述】:

如何跨多个 ODBC 数据库(如 MySQL、Oracle 和 SQL Server)执行相同的 SQL 查询。

  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Data;
  namespace DataAccessLayer
  public DataSet GetSourceTables()
    {
        string query = "Select DISTINCT(name) FROM sys.Tables";
        DataSet ds = new DBHelper().ExecuteDataSet(query);
        return ds;
    }

我的目标是从不同的 DSN 中选择所有表名,例如 MySQL、Oracle 等。

【问题讨论】:

  • 使用 ODBC 函数 SQLTables。

标签: c# sql asp.net odbc


【解决方案1】:

一般来说,只有当它是简单查询时,您才能在各种数据库中使用相同的 SQL 查询。当您需要使用日期、日期时间、字符串函数等时会有差异。

从您的查询中,我看到您想要获取表名(数据库架构的一部分)。此类查询是特定于供应商的。每个供应商都将模式信息保存在不同的表中,因此对于 PostgreSQL,您必须查看 information_schema.columns,对于 Oracle,有 user_tab_columns,而 Informix 使用 systables。您可以为每个数据库创建查询,然后一一尝试,直到成功。但是大多数数据库驱动程序都有发现数据库模式的过程/方法。在 Java 中有DatabaseMetaData.getTables(),在 ODBC 中可以使用SQLTables()。对于 C#,请查看:Retrieving table schema information using C#

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    相关资源
    最近更新 更多