- - PR -
JDBCのException…
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-11-28 17:16
現在、JavaとSQLServerを用いてテーブルを参照するだけの簡単なWEBア
プリを構築しておりますが、以下の問題が発生して困っております。 SQLServerにあるテーブルをクエリアナライザなどでSQLを叩けば普通に 参照できますが、JDBCを用いてJavaから参照しようとすると 「オブジェクト名 *** は無効です。」とエラーになります。全ての テーブルで上記のようなエラーになるわけではなく、JDBC経由で参照で きるテーブルもあります。(権限も参照できるテーブルと参照できない テーブルで違いはありません。) 過去に同じような事が発生した方、解決方法などを教えてください。 環境:SQLServer2000 JDBCバージョン:2.2.0037 ---以下、Exception内容となります。 java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]オブジェクト名 '***(テーブル名)' は無効です。 at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source) at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source) at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.executeQuery(Unknown Source) at ConnectServSample.main(ConnectServSample.java:44) ------ここまで----- 以上、宜しくお願いいたします。 | ||||
|
投稿日時: 2006-11-29 12:17
データベース名を確認しましたか?
| ||||
|
投稿日時: 2006-11-29 12:32
返答ありがとうございます。
>データベース名を確認しましたか? はい。確認しましたが、間違いはないようです。 コネクションの確立も成功しております。 | ||||
|
投稿日時: 2006-11-29 13:13
トレースを見る限り、データベース / Connection 単位の問題ではないでしょう。
参照できるテーブルと参照できないテーブルの 「名前」 を提示してください。 それと、確認に使用している SQL クエリも提示してください。 というよりは、'***' が、ワイド文字列かどうかを知りたいのですね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-11-29 13:29
>参照できるテーブルと参照できないテーブルの 「名前」 を提示してください。
>それと、確認に使用している SQL クエリも提示してください。 参照できるテーブル名:itemdata,keyitem111 参照できないテーブル名:keytable110, keyxitem110 です。 確認にしようしているSQLクエリは sql = "select count(*) cnt from hsi.keyxitem110"; となっています。 以上、宜しくお願いいたします。 | ||||
|
投稿日時: 2006-11-29 14:16
テーブル名が大文字・小文字できちんと設定されていますか?
例 JavaTB→JAVATB× | ||||
|
投稿日時: 2006-11-29 14:26
>テーブル名が大文字・小文字できちんと設定されていますか?
>例 JavaTB→JAVATB× それに関しては細心の注意をはらっていますが、 大文字、小文字は特に区別しなくてもテーブル参照はできるようです。 | ||||
|
投稿日時: 2006-11-29 16:22
あまり自分はSQLServer詳しくないのですが、あと考えられるのは
>sql = "select count(*) cnt from hsi.keyxitem110"; 上記のhsiにあたる(ユーザー名)が違っていたりすると、このエラーが出たりするようです。 |