【问题标题】:How to get data table without using database name in query如何在查询中不使用数据库名称获取数据表
【发布时间】:2018-06-07 03:04:52
【问题描述】:

我试图通过 ODBC 驱动程序从 Oracle 数据库中获取具有最高记录的表。为此,我使用以下代码。

OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder();
        builder.ConnectionString = "Driver={Oracle in OraClient11g_home1};Dbq=localhost;Uid=system;Pwd=abc;Database = NORTHWIND";
OdbcConnection con = new OdbcConnection();
        con.ConnectionString = builder.ConnectionString;
        con.Open();
        string query = "SELECT \"NORTHWIND\".\"ORDERS\".\"ID\" AS \"My field id\" FROM \"NORTHWIND\".\"ORDERS\" WHERE ROWNUM = 1";
        OdbcCommand cmd = new OdbcCommand(query,con);
        var k = cmd.ExecuteReader();
        var datatable = new DataTable();
        datatable.Load(k);
        con.Close();

上面的代码对我来说工作正常。我需要执行没有数据库名称的查询。这里的数据库名称是 NORTHWIND。但是如果我使用没有数据库名称的查询,例如"SELECT \"ORDERS\".\"ID\" AS \"My field id\" FROM \"ORDERS\" WHERE ROWNUM = 1" 我遇到了一个异常“表或视图不存在。”

即使我的连接字符串有数据库名称,我也会遇到这个异常。

谁能解释我为什么在使用没有数据库名称的查询时出现上述异常?

【问题讨论】:

  • 我想执行这样的查询。 query = "SELECT ORDERS.ID AS My field id FROM ORDERS WHERE ROWNUM = 1";

标签: c# database oracle oracle11g odbc


【解决方案1】:

【讨论】:

  • 感谢您的回复。如您所述,更改连接字符串后我的问题没有解决。你能建议我任何其他的解决方案吗?
  • @KavithaM 请检查编辑后的答案。还要检查最后一个参考链接。
猜你喜欢
  • 2015-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-23
  • 2018-02-24
相关资源
最近更新 更多