簡體   English   中英

在多個ODBC數據庫中執行相同的SQL查詢

[英]Execute the same SQL query across multiple ODBC databases

如何跨多個ODBC數據庫執行相同的SQL查詢,例如MySQL,Oracle和SQL Server。

  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等。

通常,只有簡單查詢,才可以在各種數據庫中使用相同的SQL查詢。 在需要使用日期,日期時間,字符串函數等時會有所不同。

從查詢中,我看到您想要獲取表名(數據庫模式的一部分)。 這種查詢是特定於供應商的。 每個供應商都將模式信息保存在不同的表中,因此對於PostgreSQL,您將不得不查看information_schema.columns ;對於Oracle,則有user_tab_columns而Informix使用systables 您可以為每個數據庫創建查詢,然后一個接一個地嘗試直到成功。 但是大多數數據庫驅動程序都有發現數據庫模式的過程/方法。 在Java中,有DatabaseMetaData.getTables() ;在ODBC中,您可以使用SQLTables() 對於C#,請查看: 使用C#檢索表架構信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM