如何在查询中不使用数据库名称获取数据表

时间:2017-12-26 08:14:57

标签: c# database oracle oracle11g odbc

我试图通过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" 我有一个例外“表或视图不存在。”

即使我的connectionstring有数据库名,我也有这个例外。

任何人都可以解释一下为什么我在使用没有数据库名称的查询时遇到上述异常?

1 个答案:

答案 0 :(得分:0)

将您的连接字符串更改为 -

builder.ConnectionString = "Driver={Oracle in OraClient11g_home1};Dbq=localhost;Uid=system;Pwd=abc;Data Source = NORTHWIND;";

Referrences -