- PR -

vb.netからodp.netを使ってoracle9iに接続するときのエラー

投稿者投稿内容
ハイジ
会議室デビュー日: 2003/11/28
投稿数: 19
投稿日時: 2003-11-28 10:43
初めまして。
今、VB.NETからoracle9iのデータベースに接続しようと頑張っているのですが、
どうしてもうまくいきません・・・。

ソース----------------------------------------------------------------
Dim sdata As String = "User Id=ユーザID;Password=パスワード;Data Source=ora9idb;"
Dim con As New OracleConnection(sdata)
Dim SQL As String
SQL = "SELECT * FROM テーブル名;"
Dim comm As New OracleCommand(SQL)

comm.Connection = con
con.Open()
↑ここでエラー発生

この「con.Open()」のコードで
「ORA-12154 TNS サービス名を解決できませんでした」というエラーが出てしまいます。
エラーメッセージリリースを見て、tnsnames.oraファイルを確認しましたが、ちゃんと
サービス名は登録されていました。
いろいろネットで調べてみたのですが、同じような状況を解決した!という情報が見つからず
困っています。
みなさんお忙しいのは承知しておりますが、ぜひ教えていただきたいです。
よろしくお願い致します。
ハイジ
会議室デビュー日: 2003/11/28
投稿数: 19
投稿日時: 2003-11-28 10:50
申し訳ありません!
開発環境を入力し忘れていました。

OS:Windows 2000
oracle:oracle9i database 9.2.0.1.0
oracle data provider for .NET 9.2.0.2.102
oracle9i client 9.2.0.1.0
vs:vb.net2003

です。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-11-28 12:19
 SQL*PLUSなどの、Oracleツールでは接続できますか?
ハイジ
会議室デビュー日: 2003/11/28
投稿数: 19
投稿日時: 2003-11-28 12:35
返信ありがとうございます!!

SQLPlusからは
「connect ユーザ名/パスワード」とした場合は問題なく接続できるのですが、
「connect ユーザ名/パスワード@サービス名」とした場合、
「ORA-12541 TNS リスナーがありません」というエラーが出ます。

Oracle Net managerをチェックすると、
「サービス・ネーミング」のサービス名に該当する項目のアドレスと、
「リスナー」のアドレスはちゃんと同じプロトコル・ホスト名・ポート番号を
指定しているのですが・・・・。
bachin
会議室デビュー日: 2002/08/05
投稿数: 5
投稿日時: 2003-11-28 13:07
SQL PLUSで
connect ユーザー名/パスワード@サービス名.world
で接続できますか?
ハイジ
会議室デビュー日: 2003/11/28
投稿数: 19
投稿日時: 2003-11-28 13:13
bachinさん、返信ありがとうございます!

>SQL PLUSで
>connect ユーザー名/パスワード@サービス名.world
>で接続できますか?

SQL PLUSからこのように接続してみると、
「ORA-12154 TNS サービス名を解決できませんでした」という、
.NETからの接続と同じエラーメッセージが返ってきました。

そこで確認しておきたいのですが、tnsnames.oraファイルにて

☆☆☆ =
(DESCRIPTION =
(ADDRESS_LIST =
・・・・省略

この「☆☆☆」にあたる部分がサービス名なんですよね??
私が調べたところ、その部分がサービス名だという風に提示されていたのですが・・・・。
間違っていますでしょうか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-11-28 13:56
引用:

ハイジさんの書き込み (2003-11-28 12:35) より:

SQLPlusからは
「connect ユーザ名/パスワード」とした場合は問題なく接続できるのですが、
「connect ユーザ名/パスワード@サービス名」とした場合、
「ORA-12541 TNS リスナーがありません」というエラーが出ます。


リスナーはあがっていますか?(構成しました?)

「コンピュータの管理→サービス」で、「%ORACLE_HOME%TNSListener」の状態が「開始」になっているか

スタートメニューから、「Oracle - OraHome??→Configration and Migration Tools→Net Manager」で、「ローカル→リスナー」を確認。


 サービス名をつけない場合、ローカルコンピュータにあるデータベースに接続されます。それがOkで、サービス名をつけるとNGと言うことならば、この辺があやしいのですが。。。って、Oracleコアやん。
ハイジ
会議室デビュー日: 2003/11/28
投稿数: 19
投稿日時: 2003-11-28 14:02
Jittaさん、返信ありがとうございます!

>「コンピュータの管理→サービス」で、「%ORACLE_HOME%TNSListener」の状態が「開始」に
>なっているか

こちらで確認してみたところ、「%ORACLE_HOME%TNSListener」というサービスがありませんでした。
でも、Net Managerを確認すると、ちゃんとリスナーはありました。
なので、構成はしているがサービスがないという状況になるのかな?
(↑ すみません!勉強不足で・・・。)

どうしてこのようなことがおこるのでしょうか?
また、どのようにしたら解決できるのでしょうか?
お忙しいところ申し訳ないのですが、教えていただけないでしょうか・・・・。

スキルアップ/キャリアアップ(JOB@IT)