- - PR -
ORACLEへの接続が出来ない
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-03-06 14:57
何時もお世話になっております。
ORACLEへの接続でエラーが出て開発が進める事が出来ない状況になってしまっているので、このカテゴリで良いのか迷う所ですが、何かわかる事があればお力をお貸し下さい。 開発環境 Windows XP SP2 Microsoft Visual Basic 2005 Express Edition ORACLE 9i 状況としては、↓の記事の方と同じで http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7757&forum=7&start=0 con.open() を実行すると 「ORA-12154 TNS:サービス名を解決できませんでした」 と言うエラーメッセージが出ます。 しかし上記の方とは違い、フォルダ名はD\aa\aaと言うフォルダの中にソリューションを設置して作業してみましたが、解決に至りませんでした。 他にも以下の記事や、その他資料を漁りレジストリ、環境変数、tnsname.oraなどを確認しましたが、結果は変わりませんでした。 http://otn.oracle.co.jp/forum/thread.jspa?threadID=3001560&tstart=3775 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=24103&forum=7 原因は、複数のOracleクライアントをインストールしてしまっているのが問題なのだろうと思います。 できるだけアンインストールや再インストールと言った手順に頼らず解決したいとは思うので、何かお気づきの点が有ればご指摘お願いいたします。 (最終的にそれに頼るかもしれません) 以下設定内容 新しい方のOracleへの環境変数のPathは「C:\OraHome1\bin」 C:\OraHome1\network\ADMIN\tnsnames.ora ------------------------------------------------------------------------- # TNSNAMES.ORA Network Configuration File: C:\OraHome1\network\admin\tnsnames.ora # Generated by Oracle configuration tools. サービス名1 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = サーバー1)(PORT = 1521)) ) (CONNECT_DATA = (SID = サービス名1) (SERVER = DEDICATED) ) ) サービス名2 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = サーバー2)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = サービス名2) ) ) ------------------------------------------------------------------------- サービス名1とサービス名2、サーバー1とサーバー2はそれぞれDBに合わせて設定してあります。 そこの間違いは無いはずです・・・ 他に何か設定を確認しないといけない所など、お気づきの点が有ればご教授願います。 以下追記 SQL Plusでは接続できました。 また、VB6で作成したプログラムも動作しました。 [ メッセージ編集済み 編集者: エイジ 編集日時 2009-03-06 14:59 ] | ||||||||
|
投稿日時: 2009-03-06 18:59
複数のOracleクライアントをインストールしたのは原因です。
簡易接続ネーミングメソッドで試してください。 http://otndnld.oracle.co.jp/document/products/oracle11g/111/windows/E06104-01/featConnecting.htm#i1006259 簡易接続ネーミング・メソッドの使用 簡易接続ネーミング・メソッドを使用すると、クライアントは構成を行わずにデータベースに接続できます。 簡易接続ネーミング・メソッドを使用する前に、sqlnet.oraファイルのNAMES.DIRECTORY_PATHパラメータにより、EZCONNECTが次のように指定されていることを確認します。 NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) これが有効になっていると、ODP.NETにより、アプリケーションでは"Data Source"属性を次の書式で指定できます。 //host:[port]/[service_name] 同じ例を使用して、有効な接続文字列を次に示します。 "user id=scott;password=tiger;data source=//sales-server:1521/sales.us.acme.com" "user id=scott;password=tiger;data source=//sales-server/sales.us.acme.com" "user id=scott;password=tiger;data source=sales-server/sales.us.acme.com" ポート番号が指定されていない場合、デフォルトで1521が使用されます。 _________________ カスタマイズ自由自在のスタートページ。 | ||||||||
|
投稿日時: 2009-03-06 19:58
無名tigerさん
返信ありがとうございます。 ODP.NETと言う事はソースを書き換えるという事ですよね? ソースは他のPCで動作しているので、書き換える事が出来ません。 私のPCの環境を直すしかないです・・・ その理由から簡易接続を使用する方法は使えないです。 Oracleのアンインストール及び再インストールを行ったのですが、それでも同じ状態になっています。 現在はOracleクライアントは9iのみ アンインストールの仕方が不味かったのでしょうか・・・ アンインストールする際見ていたのが下記のサイトです。 http://www.ss.iij4u.or.jp/~somali/web/server/oracle_uninst.html | ||||||||
|
投稿日時: 2009-03-06 22:21
アンインストール方法は参照手順で間違い無いと思います。 ただ気になるのが、参照された手順で全てを行なったのであれば、元に戻ると思いますが...クライアントを複数いれているとの事でしたので、レジストリやファイルの消し忘れは無いでしょうか? | ||||||||
|
投稿日時: 2009-03-07 09:58
ごん太さん
返信ありがとうございます。 問題が解決しました。 社内PCで接続のData Source名が統一できてなかったのが原因でした・・・ そして、そこをそれをデバッグ実行で確認した際にそれで問題ないと考えて居た私のミスです。 そして今回の事でやっと Provider=MSDAORA;Data Source=XXXXXX;User ID=XXX;Password=XXX; のData Sourceの部分がtnsnames.oraファイルの XXXXXX = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = サーバー)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = サービス名) ) ) の部分とイコールだと言う事に気付きました。 勉強不足で恥ずかしい限りです。 自分の設定だとXXXXXX=サービス名で作っており 別の環境だとXXXXXX=サーバー名/サービス名で作っていたのでクイックウォッチで見たときそういうものだと盲信してしまっていました。 Oracleの環境について今回の件で学んだ事は多々ありますが、皆様にこのようなことでお手数掛けていただき申し訳なく思います。 ご返信くださった無名tigerさん、ごん太さんありがとうございます。 そして、申し訳ありませんでした。 これからも色々学びながら成長して行こうと思いますので、またご機会あればよろしくお願いいたします。 |
1