Если вы входите в систему с использованием другого пользователя в оракуле и хотите читать из таблицы под другим пользователем, вы должны полностью квалифицировать свое имя таблицы. Если таблица создается под именем пользователя «test_user», затем запрос таблицу как «Select * From TEST_USER.test»
Это работает для меня, когда вошли в систему под тем же именем которого была создана таблица:
private const string connString = "DATA SOURCE=//server:port/service_name;PASSWORD=pswd;USER ID=user_name;";
static void Main(string[] args)
{
OracleConnection conn = new OracleConnection(connString);
conn.Open();
OracleCommand cmd = new OracleCommand("select * from test", conn);
// This would also work if the username I used to login was "TEST_USER".
// OracleCommand cmd = new OracleCommand("select * from TEST_USER.test", conn);
cmd.ExecuteReader();
conn.Close();
}
Другая возможная проблема заключается в том, что вы назвали вашу таблицу строчными буквами как «Тест», вместо того, чтобы ее называли «ТЕСТ» в базе данных. В этом случае вам нужно ссылаться на таблицу с кавычками вокруг него, как, например:
static void Main(string[] args)
{
OracleConnection conn = new OracleConnection(connString);
conn.Open();
OracleCommand cmd = new OracleCommand("select * from \"Test\"", conn);
cmd.ExecuteReader();
conn.Close();
}
Или вы также можете переименовать таблицу в оракула, если дело является проблемой, и вы хотите разрешить это следующим образом:
ALTER TABLE "Test" RENAME TO TEST;
Двойной проверить, что строка подключения находится в правой базе данных. – Jack
можете ли вы разместить строку соединения? –
Создана таблица, под которой пользователь, вы подключаетесь к нужному пользователю? – V4Vendetta