1

私はテーブルを持っています

create table BD_VEHICLES_TEMP_1
(
  CONTRACT_NO           VARCHAR2(16) not null,
  ELIMINATED_FLG        VARCHAR2(1),
  ELIMINATION_CODE      VARCHAR2(2),
  PUBLISHED             VARCHAR2(1),
  BD_GRP_ID             VARCHAR2(10),
  EMD                   NUMBER(8),
  VALUATION_PRICE       NUMBER(8),
  DIVI                  VARCHAR2(2),
)

対応するBeanを作りました

その属性の値を次のように設定します

bean.setDIVI(row.getCell(27).getNumericCellValue()+"");

ただし、Bean をデータベースに挿入しているときに、次のエラーが発生します

ORA-12899: value too large for column "AFSWEB"."BD_VEHICLES_TEMP_1"."DIVI" (actual: 4, maximum: 2)

これは列のサイズと関係があることを知っています。DIVI の Excel シートのデータは 11,13,45,67.. など、すべて 2 桁です。

理由は何ですか?解決策は何ですか?

前もって感謝します !

4

2 に答える 2

0

割り当てられた値を印刷してみてください。データベースに何が渡されるかがわかります。

String value = row.getCell(27).getNumericCellValue()+""; 
// or Integer.toString(row.getCell(27).getNumericCellValue()) 
System.out.println("'" + value + "'");

JDBC ステートメントも表示します。

Unicode に関連している可能性がありますか? UTF16 は、文字列の長さを 2 倍にします。

于 2013-08-14T08:32:09.523 に答える