oracleで別のユーザーを使用してログインしていて、別のユーザーの表から読み取る場合は、表名を完全修飾する必要があります。あなたのテーブルは、「TEST_USER」という名前のユーザの下に作成されている場合は、「TEST_USER.test SELECT * FROM」テーブルが作成されたのと同じユーザ名でログインしたときにこれが私の作品
として、あなたのテーブルをクエリ:
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();
}
その他の可能性のある問題は、データベースで "TEST"という名前ではなく、小文字を "Test"として名前を付けたことです。その場合は、次のような、それを囲む引用符を使用してテーブルを参照する必要があります:
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