この質問をしなければならないなんて信じられませんが、一生 Oracle 11g データベースに接続することはできません。
以下は使用中に機能しますSystem.Data.OracleClient
が、明らかにこれは減価償却されています。まったく同じコードを使用するOracle.DataAccess.OracleClient
と、次のエラーが発生します
{"ORA-12545: Connect failed because target host or object does not exist"}
これが私のコードです
using (OracleConnection con = new OracleConnection("Data Source=orac;User Id=SYSTEM; Password=Pass;"))
{
con.Open();
Console.WriteLine("Connection opened");
OracleCommand cmd2 = new OracleCommand("SELECT * FROM SYSTEM.TABLE", con);
OracleDataReader oracleDataReader = cmd2.ExecuteReader();
while (oracleDataReader.Read())
{
Console.WriteLine(oracleDataReader[0]);
}
}
誰かが私が間違っていることを手伝ってくれますか?
Oracle.DataAccess.dll
をロードするには、プログラムを 32 ビットに変更する必要がありました。
これは、使用する正しいライブラリでもありますか???
ありがとう
編集
tnsnames.ora ファイルを次のように変更します。
# tnsnames.ora Network Configuration File:
C:\app\UserName\product\11.2.0\dbhome_3\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
ORAC =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orac.example.com)
)
)
LISTENER_ORAC =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522))
アップデート
Oracle Sql developer を使用して接続を試みました。これは、TNS 接続タイプを使用している限り機能しますが、基本接続タイプを使用すると機能しません。
また、私のサービスには2つの呼び出しがあることに気付きました
OracleOraDb11g_home1TNSListener OracleOraDb11g_home2TNSListener
orac dbhome は home3 だと思いますが、これが問題なのでしょうか?? もしそうなら、誰かが私がそれを修正する方法を知っていますか?
ありがとう
UPDATE HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ には、2 つのプロパティ (デフォルト) と inst_loc があります。「KEY_OraDb11g_home1」および「KEY_OraDb11g_home2」と呼ばれるいくつかのフォルダがあります。これらの両方には、ORACLE_HOME というプロパティが含まれています。
KEY_OraDb11g_home1 - ORACLE_HOME = C:\app\UserName\product\11.2.0\dbhome_2 KEY_OraDb11g_home2 - ORACLE_HOME = C:\app\UserName\product\11.2.0\dbhome_3
home1 の Db の SID は OracleDev と呼ばれるものです。これはかなり前にインストールした可能性がありますが、問題が発生している場合は、今は必要ありません。
ありがとう