- - PR -
ストアドの配列OUTパラメータの文字化けについて
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-10-04 16:14
現在JAVAからPL/SQLを呼ぶプログラムを作成中です
ストアドからJAVAへ配列を渡しているのですが、 JAVAで取得し、表示した際にすべての文字が「???」と文字化けしてしまいます。 ※配列の内容を文字列に編集しなおして渡すと文字化けはおこりません なにか解決策をご存知の方がいらっしゃいましたら何卒ご教授ください ■環境 OS : Windows2000 DB : Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 JDBC : Oracle JDBC Driver 10.1.0(thinを使用) JDK : JDK 1.4.2_09 Javaからは以下のようにしてストアドを呼び出しています。 OracleCallableStatement ocs = (OracleCallableStatement)conn.prepareCall("BEGIN PK_TEST.TEST(?, ?); END;"); ocs.registerOutParameter(1, OracleTypes.ARRAY, "T_TBL_RNAME"); ocs.registerOutParameter(2, Types.VARCHAR); ocs.executeUpdate(); //プロシージャ実行 String[] RNameArray = (String[])ocs.getARRAY(1).getArray(); String ErrData = ocs.getString(2); for(int i=0; i<RNameArray.length; i++){ System.out.println("配列 --->" + RNameArray[i]); //文字化け } System.out.println("文字列 --->" + ErrData); //文字化けしない ストアドは以下のように作成しています ■TYPE CREATE OR REPLACE TYPE T_TBL_RNAME AS TABLE OF CHAR(6) ■PACKAGE CREATE OR REPLACE PACKAGE PK_TEST IS PROCEDURE TEST( O_T_RNAME OUT T_TBL_RNAME, O_C_ErrDATA OUT VARCHAR2 ); END PK_TEST; ■PACKAGE BODY CREATE OR REPLACE PACKAGE BODY PK_TEST IS PROCEDURE TEST( O_T_RNAME OUT T_TBL_RNAME, O_C_ErrDATA OUT VARCHAR2 )IS --変数定義 V_ErrData VARCHAR2(255); N_ProcSuu NUMBER; --配列 T_RNAME T_TBL_RNAME := T_TBL_RNAME(); --カーソル定義 CURSOR CUR_TEST IS SELECT A.RIYOSYANAME AS RIYOSYANAME FROM RIYOSYAMASTER A; BEGIN -- 初期処理 N_ProcSuu := 0; V_ErrData := Null; FOR REC_TEST IN CUR_TEST LOOP T_RNAME.extend; T_RNAME(T_RNAME.count) := REC_TEST.RIYOSYANAME; V_ErrData := V_ErrData || ',' || T_RNAME(N_ProcSuu+1); N_ProcSuu := N_ProcSuu + 1; --カウントアップ END LOOP; --OUTパラメータにセット O_T_RNAME := T_RNAME; --文字化け O_C_ErrDATA := V_ErrData; --文字化けしない END TEST; END PK_TEST; | ||||||||
|
投稿日時: 2005-10-04 17:27
私も現在同じような事をしていますが、PL/SQLを呼ぶJavaの部分はJPublisherを
使用しています。 JPublisherを使用してPL/SQLを実行したら同じように文字化けしますか? | ||||||||
|
投稿日時: 2005-10-04 22:01
特に関係無いかもしれませんが、下記の箇所
は、
では駄目なのでしょうか? プロシージャ呼び出しには疎いので的外れでしたらご容赦ください。 | ||||||||
|
投稿日時: 2005-10-04 22:11
下記なんか参考になりますかね〜?
http://pukiwiki.postcle.com/zange/index.php?%C7%DB%CE%F3%A1%CAVARRAY%A1%CB%A4%CE%BC%F5%A4%B1%C5%CF%A4%B7 | ||||||||
|
投稿日時: 2005-10-05 12:01
みなさまありがとうございます。
無事解決いたしました。 原因はJDBCドライバのバージョンによるものでした。 >らざるす様 JPublisherという方法もあるんですね また試してみたいと思います |
1