- PR -

Oracle10gのビューをojdbc14.jarで取得できない

1
投稿者投稿内容
たまたま
会議室デビュー日: 2005/08/01
投稿数: 3
投稿日時: 2006-05-02 15:31
皆様の経験とお力をかしてください。お願いします。

現在、Oracle9iからOracle10gへの移行検証を行っております。
Oracle10g環境で下記のような不思議な事象が起こってしまいました。

------------------------------------------------
ビューに対してojdbc14.jar を用い、SELECT文を実行
------------------------------------------------

【 TEST_MESSAGEのCreate文 】
CREATE OR REPLACE VIEW TEST_MESSAGE
(A,B,C,D,E)
AS
SELECT
A,B,C,D,E
FROM
TEST_MESSAGE@参照先
WITH READ ONLY

※A,B,C,D,E は全て VARCHAR2


【 TEST_MESSAGEの値 】
A    ,B  ,C         ,D
---------------------------------------------------
SYS001 ,3 ,起動しました。   ,よろしいですか?
SYS002 ,2 ,起動しました。   ,
SYS003 ,1 ,起動できません。  ,


【 java ソース ※抜粋 】

stmt = con.createStatement();
rs = stmt.executeQuery("SELECT C,D,B FROM TEST_MESSAGE WHERE A='SYS001'" );



【結果セットの内容】
・rs.findColumn('C')の値は 1
・rs.findColumn('D')の値は 2
・rs.findColumn('B')の値は 3

・rs.getString('C')の値は「3」
・rs.getString('D')の値は「起動しました。」
・rs.getString('B')の値は「よろ」



結果上記のようにカラムと値は合わないし、取得した文字列は途中で切れてしまう次第で困っております。SELECTするときに「SELECT B,C,D FROM TEST_MESSAGE WHERE A='SYS001'」とすると、正常に取得できますが、理由がわかりません。
順序の違うスース箇所なんていくらでもありそうなので困っております。

お力をお貸しください。
お願いします。




[ メッセージ編集済み 編集者: たまたま 編集日時 2006-05-02 15:33 ]

[ メッセージ編集済み 編集者: たまたま 編集日時 2006-05-02 15:34 ]

[ メッセージ編集済み 編集者: たまたま 編集日時 2006-05-02 15:36 ]
たまたま
会議室デビュー日: 2005/08/01
投稿数: 3
投稿日時: 2006-05-02 15:47
補足になりますが、システム構成はこの通りです。

マシン環境
Windows2003 Server
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0

Java開発環境
開発環境( JBulder 7 )
JDBC ( Oracle JDBC Driver 10.2.0 )
JDK ( java 1.4.2-b28 )

以上です。
お願いいたします。
たまたま
会議室デビュー日: 2005/08/01
投稿数: 3
投稿日時: 2006-05-08 10:50
結局、正常に参照できない理由は判りませんでした。
どうやら、viewの参照先が外部DBだったのが原因みたいです。
メッセージテーブルということなので、
テーブルを接続側のDBに作成する事で回避しました。

一考された方々へ
ありがとう御座いました。
1

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