我从我的java代码调用一个函数,我得到这个异常。我已经检查过所有的数据类型和其他所有我能想到的东西,但我仍然得到这个异常。Oracle:数值或数值错误
java.sql.SQLException: ORA-06502: PL/SQL: numeric or value error: character to number conversion error
if (rs.next()) {
String originalOrderNature = rs.getString("ORDER_NATURE");
String stExCode = rs.getString("ST_EX_CODE");
long orderNumber = rs.getLong("ORDER_NUMBER");
String client_code = rs.getString("CLIENT_CODE");
String st_ex_code = rs.getString("ST_EX_CODE");
String isin = rs.getString("ISIN");
String symbol = rs.getString("SYMBOL");
String market_type = rs.getString("MARKET_TYPE");
String buy_or_sell = rs.getString("BUY_OR_SELL");
int volume = rs.getInt("VOLUME");
float rate_limit = rs.getFloat("RATE_LIMIT");
String order_nature = rs.getString("ORDER_NATURE");
Date valid_till = rs.getDate("VALID_TILL");
String order_status_id = rs.getString("ORDER_STATUS_ID");
aryMarginParam.add(0, originalOrderNature);
aryMarginParam.add(1, stExCode);
aryMarginParam.add(2, orderNumber);
aryMarginParam.add(3, client_code);
aryMarginParam.add(4, st_ex_code);
aryMarginParam.add(5, isin);
aryMarginParam.add(6, symbol);
aryMarginParam.add(7, market_type);
aryMarginParam.add(8, buy_or_sell);
aryMarginParam.add(9, volume);
aryMarginParam.add(10, rate_limit);
aryMarginParam.add(11, order_nature);
aryMarginParam.add(12, valid_till);
aryMarginParam.add(13, order_status_id);
}
在这个功能我传递此ArrayList
String statement = "BEGIN ? := abc(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?); END;";
Object[] in = new Object[13];
int[] out = new int[2];
String OriginalOrderNature = (String) arrVerifyMargin.get(0);
String stExCode = (String) arrVerifyMargin.get(1);
long orderNumber = (Long) arrVerifyMargin.get(2);
String client_code = (String) arrVerifyMargin.get(3);
String st_ex_code = (String) arrVerifyMargin.get(4);
String isin = (String) arrVerifyMargin.get(5);
String symbol = (String) arrVerifyMargin.get(6);
String market_type = (String) arrVerifyMargin.get(7);
String buy_or_sell = (String) arrVerifyMargin.get(8);
int volume = (Integer) arrVerifyMargin.get(9);
float rate_limit = (Float) arrVerifyMargin.get(10);
String order_nature = (String) arrVerifyMargin.get(11);
Date valid_till = (Date) arrVerifyMargin.get(12);
String order_status_id = (String) arrVerifyMargin.get(13);
int modifyy = modify;
//float float_volume = (float)volume;
System.out.println(OriginalOrderNature + " " + stExCode);
out[0] = Types.VARCHAR;
in[0] = orderNumber;
in[1] = client_code;
in[2] = st_ex_code;
in[3] = isin;
in[4] = symbol;
in[5] = market_type;
in[6] = buy_or_sell;
in[7] = volume;
in[8] = rate_limit;
in[9] = order_nature;
in[10] = valid_till;
in[11] = order_status_id;
in[12] = modifyy;
out[1] = Types.VARCHAR;
String orderNature = (DAOHelper.call(statement, in, out))[1].toString();
return orderNature;
+6
我相信你确实检查了所有的东西,正如你声称的那样,然而很显然你忽略了某些东西。除非您编辑问题并添加更多详细信息,否则任何人都无法帮助您。具体来说,向我们展示代码。如果您无法向我们展示代码,除了“停止将字符转换为数字转换错误”之外,没有什么可说的。 –
+0
提供的信息不足以导致出现问题 –
+1
您应该在此问题中包含**代码**。 –