PL/SQL開発者を使用してPL SQLで開発する必要がありますが、Oracleがインストールされていないときにpl/sql開発者が32ビットOracleクライアントをインストールする必要があるため、Oracle 11gとpl/sql開発者の両方を同じマシンで動作させる方法がわかりませんローカルマシンで作業するときはクライアントが必要です。これは私がしたことです:
1) ドライブ d:\ に oracle 11g 64 ビット エンタープライズをインストールしました。 client_home%->Network->Admin フォルダと tnsname.ora ファイルを修正し、そこに oracle 11 g home_dir..tnsnames.ora からコピーした接続設定を書き込みました
MyOracle =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
c:\plsqldev\ に PL/SQL 開発者をインストールし、マシンを再起動した後。
これで、Oracle データベース ディレクトリにある sql*plus を使用してデータベースに接続できますが、クライアント sql*plus を使用して Oracle に接続しようとすると、pl/sql 開発者を使用して接続しようとすると tns プロトコル エラーが表示されます。指定された接続識別子を解決できませんでした。私は何をすべきか?私を手伝ってくれますか
追加: TNSNAMES パラメータを NAMES.DIRECTORY_PATH (サーバーとクライアントの sqlnet.ora ファイルの両方) から削除しました。ログインすると、 ora-12154 tns could not resolve the connect identifier specified と表示されますが、それでも DB への接続に成功すると、 SERVER - s sql*plus に接続しようとしています。
ここに私の設定ファイルがあります:
**servers listener.ora **
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\app\Light\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\app\Light\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
ADR_BASE_LISTENER = D:\app\Light
サーバーsqlnet.ora
SQLNET.AUTHENTICATION_SERVICES= (NONE)
NAMES.DIRECTORY_PATH= (HOSTNAME)
サーバー tnsname.ora
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
クライアント sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES= (NONE)
NAMES.DIRECTORY_PATH= (HOSTNAME)
クライアント tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
追加: はい!)) 最後に解決策を見つけました: :) クライアントの代わりにサーバーの構成ファイルを使用する必要がありますが、oci.dll(32bit) はクライアント ディレクトリから取得する必要があります。基本的な手順について説明します-pl/sql開発者10.0.2をローカルにインストールされたOracle 11.2 x64で動作させる方法:
1) まず、Oracle をインストールする必要があります (私は d:\app にインストールしました)。
2)次に、Oracleインスタントクライアントをダウンロードしてインストールする必要があります(インスタントクライアントには構成ファイル(ネットワーク>管理ディレクトリでさえも)がないことがわかりました。oci.dllなどのdllが必要でした..注:内部に独自の構成ファイルを持つ「管理者」を初めて選択したのですが、この種のクライアントはOracleへのリモートアクセスにのみ必要なようです)。インスタント クライアントを c:\app\ にインストール (解凍) しました。
3) PL/SQL developer を開き、tools->preferences->connection に移動し、"Oracle Home" フィールドをインスタント クライアントのホーム ディレクトリ (私は c:\app と入力しました) に設定しますが、通常はドロップに既に存在します。ドロップダウンリストをクリックして、 OraClient11g_home1_32bit を選択するだけです。このようにして、ociライブラリパスを設定します(ドロップダウンリストから選択)。[適用] をクリックして、pl/sql 開発者を終了します。
4) ここで、2 つの環境変数を作成する必要があります (最初の 1 つは接続構成を含むフォルダーへのパスを表示し、2 番目は言語 (正しくない場合は訂正してください)) ->
TNS_ADMIN = %SERVER_HOME%\NETWORK\ADMIN\ (私は D:\app\Light\product\11.2.0\dbhome_1\NETWORK\ADMIN を置きました)
TNS_LANG = AMERICAN_CIS.CL8MSWIN1251
5) (オプションで) 再起動してから、pl/sql 開発者を開始します - 3 つの接続エイリアスが必要です。
このトピックで回答してくれたすべての人に感謝します。誰かの助けになることを願っています