- PR -

ORA-12154エラーについて

投稿者投稿内容
未記入
ベテラン
会議室デビュー日: 2005/07/14
投稿数: 66
投稿日時: 2006-06-07 16:25
いつもお世話になっております。

環境実行環境:WindowsXP、.net Framework2.0でOracle9i

ODP.netを使用し、
OracleConnection Con = new OracleConnection("コネクション文字列");
OracleCommand cmd = Con.CreateCommand();
cmd.CommandText = "SELECT * FROM T_TABLE ";
OracleDataReader objDr = cmd.ExecuteReader();  ←この行
でデータを取得するときに
ORA-12154:TNSサービス名を解決できませんでした。
と処理が落ちる部分があります。
cmdのConnectionString等には値が入っているのですが
何故か処理落ちします。
考えられる原因とかありますでしょうか。

よろしくお願いします。
他の画面などは正常にデータを取得できるのですが
何故かこの画面だけ処理が落ちます。

ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-06-07 16:36
これってさ。コネクションはいつオープンしてんの?
AdapterならともかくReaderはOpenいるんじゃねーかな?
未記入
ベテラン
会議室デビュー日: 2005/07/14
投稿数: 66
投稿日時: 2006-06-07 16:41
すみません。書き忘れてました。
下記のOPEN状態でも同エラーになります。

OracleConnection Con = new OracleConnection("コネクション文字列");
OracleCommand cmd = Con.CreateCommand();
cmd.CommandText = "SELECT * FROM T_TABLE ";
Con.Open();
OracleDataReader objDr = cmd.ExecuteReader();  ←この行
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-06-07 16:55
コネクション文字列は他の画面と完全に同じですか?
例外は毎回出ますか?
未記入
ベテラン
会議室デビュー日: 2005/07/14
投稿数: 66
投稿日時: 2006-06-07 16:58
かるあさんどうもです。

Connection文字列は共通変数より取得してますので
完全に同じです。内容も一応、Response.Write(変数)で出力して
確認しました。

また、同じ画面の同じ行で毎回エラーになります。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-07 16:58
引用:

未記入さんの書き込み (2006-06-07 16:41) より:

すみません。書き忘れてました。
下記のOPEN状態でも同エラーになります。


SQL Plus で、問題の SQL コマンドは通りますか?

ExecuteReader メソッドで起きるとなると、原因が考えられにくいんですけど...
とりあえず、スタック トレースを見せて頂けませんか?
(デバッガ上、ExecuteReader メソッドで止まっている可能性があります)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
未記入
ベテラン
会議室デビュー日: 2005/07/14
投稿数: 66
投稿日時: 2006-06-07 17:16
じゃんぬねっとさんどうもです。

SQL Plusでは処理は通ります。

>ExecuteReader メソッドで起きるとなると、原因が考えられにくいんですけど...
>とりあえず、スタック トレースを見せて頂けませんか?
>(デバッガ上、ExecuteReader メソッドで止まっている可能性があります)
上記の意味がよく解りません。スタック トレースってなんでしょう?
また、開発環境では正常に動作しております。
別マシン、VS2005が入ってない環境で動作させると上記のTNSエラーになります。
ただ、1つの画面だけで他の部分では正常にSQLよりデータが取得できてます。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-07 17:29
引用:

未記入さんの書き込み (2006-06-07 17:16) より:

上記の意味がよく解りません。スタック トレースってなんでしょう?


とりあえず、

コード:

    try {
        // 今ある処理
    } catch (Exception ex) {
        Console.WriteLine(ex.ToString());
    }


こういう感じにして、出力結果をどうぞ。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

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