トップ回答者
ASP.NETWebアプリからのOracleDB検索でデータが検索できない

質問
-
こんにちは。
現在、ASP.NETのWebアプリを作成しているのですが、Oracleからのデータ取得がうまくいかず困っています。
環境と事象を以下に記載しますので、解決策が判る方はアドバイス頂ければ幸いです。
◆環境
・OS :Windows Server 2008 R2
・IIS :7.5
・DBMS:Oracle 11g
・言語:VB.NET
◆事象
・WebアプリからのDB検索で、検索出来るはずのデータが検索できない。(データ件数が0)
◆確認したこと
・Webアプリから発行するクエリに問題があるのかと思い、DB検索クエリをログにはき出し、このログにはき出したクエリを
sql*plus上で実行した所、ちゃんとデータが返ってくる。(データ件数は2,000件程度)
クエリ単独では問題なく検索できるのに、なぜWebアプリからだと検索ができないのかが判りません。
IISとオラクルのログを見れば、なにか原因がわかりますでしょうか?また、ログはどのように取得すれば
よいのでしょうか?
また、なにか原因として考えられる事はありますでしょうか?
よろしくお願いいたします。
回答
-
Oracle を使ったことがない自分がレスするのもなんですが・・・
ワーカープロセスの Oracle へのログイン、DB に対する権限には問題はありませんか?
SQL Server の場合は、そのあたりが問題となっていることが多いです。
- 回答としてマーク buruburukoinu 2013年12月25日 1:44
-
ありがちなパターンとして、固定長文字列の項目を検索条件としていて、桁数の足りない条件をパラメータとして渡している、というのがあったと思います。
例えば10文字の項目に対して、"A%"というパラメータでLIKE検索した場合、3文字目から後ろはパラメータとして空白文字が補われてしまうため、結果として検索条件にマッチしない、というようなことが起こったりします。
参考まで。
- 回答としてマーク buruburukoinu 2013年12月25日 1:43
-
IISとオラクルのログを見れば、なにか原因がわかりますでしょうか?また、ログはどのように取得すれば
よいのでしょうか?Oracleのトレースを取り、実際に発行されているSQLを確認されてみてはいかがでしょうか?
(参考)
OracleのSQLトレースの取り方が分からない
http://itpro.nikkeibp.co.jp/members/NOS/TROUBLE/20000701/1/★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
- 回答としてマーク buruburukoinu 2013年12月25日 1:43
-
トレースを出すという話なら、ODP.NET自体のトレース機能を使うのも手ですよ。
http://docs.oracle.com/cd/E49329_01/win.121/b72971/featConfig.htm#sthref129
- 回答としてマーク buruburukoinu 2013年12月25日 1:43
-
> 教えて頂いたトレースの取り方を参考に調査を進めたいと思います。
それより、差し支えなければ、「ちゃんとDBからの検索ができている」ページと「特定の画面のみ出来ない」ページのソースを見せてもらったほうが解決が早いかもしれませんよ。
- 回答としてマーク buruburukoinu 2013年12月25日 1:43
-
回答ありがとうございました。返信がおそくなりすみません。
時間がかかりましたが、この問題は解決しました。結局、SQL文に問題があることがわかりました。
皆様どうもありがとうございました。
- 回答としてマーク buruburukoinu 2013年12月25日 1:43
すべての返信
-
Oracle を使ったことがない自分がレスするのもなんですが・・・
ワーカープロセスの Oracle へのログイン、DB に対する権限には問題はありませんか?
SQL Server の場合は、そのあたりが問題となっていることが多いです。
- 回答としてマーク buruburukoinu 2013年12月25日 1:44
-
> ちょっと不思議なのが、同様に作成している他の画面ではちゃんとDBからの検索が
> できているのですが、特定の画面のみ出来ないのです。それでは、ここに書いてあること以外なにも知りえない回答者に、今提供されている
情報だけで原因が分かるとは思えないのですが。- 編集済み SurferOnWww 2013年12月12日 13:27 誤字訂正
-
ありがちなパターンとして、固定長文字列の項目を検索条件としていて、桁数の足りない条件をパラメータとして渡している、というのがあったと思います。
例えば10文字の項目に対して、"A%"というパラメータでLIKE検索した場合、3文字目から後ろはパラメータとして空白文字が補われてしまうため、結果として検索条件にマッチしない、というようなことが起こったりします。
参考まで。
- 回答としてマーク buruburukoinu 2013年12月25日 1:43
-
IISとオラクルのログを見れば、なにか原因がわかりますでしょうか?また、ログはどのように取得すれば
よいのでしょうか?Oracleのトレースを取り、実際に発行されているSQLを確認されてみてはいかがでしょうか?
(参考)
OracleのSQLトレースの取り方が分からない
http://itpro.nikkeibp.co.jp/members/NOS/TROUBLE/20000701/1/★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
- 回答としてマーク buruburukoinu 2013年12月25日 1:43
-
トレースを出すという話なら、ODP.NET自体のトレース機能を使うのも手ですよ。
http://docs.oracle.com/cd/E49329_01/win.121/b72971/featConfig.htm#sthref129
- 回答としてマーク buruburukoinu 2013年12月25日 1:43
-
> 教えて頂いたトレースの取り方を参考に調査を進めたいと思います。
それより、差し支えなければ、「ちゃんとDBからの検索ができている」ページと「特定の画面のみ出来ない」ページのソースを見せてもらったほうが解決が早いかもしれませんよ。
- 回答としてマーク buruburukoinu 2013年12月25日 1:43
-
回答ありがとうございました。返信がおそくなりすみません。
時間がかかりましたが、この問題は解決しました。結局、SQL文に問題があることがわかりました。
皆様どうもありがとうございました。
- 回答としてマーク buruburukoinu 2013年12月25日 1:43