私は英語がうまくない
そして私の英語は文法が間違っています
理解を願う
OJDBC6 で ARRAY CLASS を使用しています。
それ(ARRAYクラス)を使用して、データをOracleデータベースに送信します(手順)。
数値型と日付型のデータは、オラクルで非常によく使用されます。
ただし、varchar2 型のデータは oracle (ARRAY) では null です
別のソリューション (Java パス設定 orai18n.jar ファイル) が表示されますが、java.lang.NoSuchMethodError: oracle.i18n.text.converter.CharacterConverterOGS.getInstance(I)Loracle/i18n/text/converter/CharacterConverter; のエラーがあります。
この問題の解決策が見つかりません
この問題を解決する方法をお願いします ~~ ~~
私はJDK1.7、OJDBC6.jarを使用しています
---------------------------------------------- orclae コード -- -------------------------------- タイプXXXXXXXX_TYPEをオブジェクトとして作成または置換(
nnnnnnn1 NUMBER
,nnnnnnn2 NUMBER
,nnnnnnn3 NUMBER
,vvvvvvv1 VARCHAR2(150)
,nnnnnnn4 NUMBER
,dddddddd1 DATE
,vvvvvvv2 VARCHAR2(250)
,nnnnnnn5 NUMBER
,dddddddd2 DATE
,nnnnnnn6 NUMBER
,dddddddd3 DATE
,nnnnnnn7 NUMBER
,vvvvvvv3 VARCHAR2(10)
,vvvvvvv4 VARCHAR2(30)
,vvvvvvv5 VARCHAR2(20)
,vvvvvvv6 VARCHAR2(80)
--XXXXXXXX_TYPE終了
タイプ XXXXXXXXXXX_TBL を XXXXXXXX_TYPE のテーブルとして作成または置換
-- XXXXXXXXXXXX_TBL終了
----------------------------------------------java--------------------- ---------------------------
public class Ex_mainJava {
public static void main(String[] args){
DBPoolCon db = DBPoolCon.getInstance();
String str = "{call xxx_xxx_xxxx_xxxx_result_pkg.XX_XX_result(?,?,?)}";
try {
Connection oracleConn = (OracleConnection) db.buildPoolConnection();
CallableStatement callStatement = oracleConn.prepareCall(str);
Object[][] x_ctr_tbl = new Object[1][16];
x_ctr_tbl[0][0] = 1;
x_ctr_tbl[0][1] = 2;
x_ctr_tbl[0][2] = 3;
x_ctr_tbl[0][3] = "ABC";
x_ctr_tbl[0][4] = 4;
x_ctr_tbl[0][5] = java.sql.Date.valueOf("2014-06-18");
x_ctr_tbl[0][6] = "DEF";
x_ctr_tbl[0][7] = 5;
x_ctr_tbl[0][8] = java.sql.Date.valueOf("2014-06-18");
x_ctr_tbl[0][9] = 6;
x_ctr_tbl[0][10] = java.sql.Date.valueOf("2014-06-18");
x_ctr_tbl[0][11] = 7;
x_ctr_tbl[0][12] = "HHHH";
x_ctr_tbl[0][13] = "KKKK";
x_ctr_tbl[0][14] = "JJJJ";
x_ctr_tbl[0][15] = "MMMM";
ArrayDescriptor oracleCollection2 = ArrayDescriptor.createDescriptor("XXXXXXXXXXX_TBL ".toUpperCase(),oracleConn);
ARRAY oraArry2 = new ARRAY(oracleCollection2, oracleConn,x_ctr_tbl);
System.out.println(oraArry2.dump());
callStatement.registerOutParameter(1, java.sql.Types.VARCHAR);
callStatement.registerOutParameter(2, java.sql.Types.INTEGER);
callStatement.setArray(3,oraArry2);
callStatement.execute();
String s =callStatement.getString(1);
int i = callStatement.getInt(2);
System.out.println("error:"+s);
System.out.println("code:"+i);
callStatement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- - - - -コンソール - - - - - - - - - - - - - - - - - -
System.out.println(oraArry2.dump());
nnnnnnn1 1
,nnnnnnn2 2
,nnnnnnn3 3
vvvvvvv1 ??? <---problem
nnnnnnn4 4
dddddddd1 2014-06-18 00:00:00.0
vvvvvvv2 ??? <---problem
nnnnnnn5 5
dddddddd2 2014-06-18 00:00:00.0
nnnnnnn6 6
dddddddd3 2014-06-18 00:00:00.0
nnnnnnn7 7
vvvvvvv3 ??? <---problem
vvvvvvv4 ??? <---problem
vvvvvvv5 ??? <---problem
vvvvvvv6 ??? <---problem
サンプルコードソース
???の問題を解決してください (問題)
ありがとうございました。あなたは私の問題について私の情報源を読んでください