2010-06-21 43 views
0

我尝试插入在Oracle database.im尝试这样一个BigInteger值:在数据库如何插入的BigInteger值在Oracle数据库

BigInteger a=new BigInteger("4280972057205720579205792572075927209857"); 
String str=new String(a.toByteArray()); 

现在:

PerparedStatement pstmt=con.prepareStatement("insert into database values(?)"); 
pstmt.setString(1,str); 
pstmt.executeUpdate(); 

如果IM使用str="hello"则如使用str=new String(a.toByteArray())则没有(空)插入database.why它so.please解释,并提出了一些方法,这样做IM工作fine.but。

+0

我在数据库中列的数据类型是VARCHAR2(4000)。 – condinya 2010-06-21 15:27:20

+0

你好家伙....我用toString方法,它是working.but但我想知道为什么我无法使用我以前的approach.is有任何类型兼容性问题java String和oracle varchar2之间的问题。 – condinya 2010-06-21 15:53:56

+0

您创建的字符串可能包含一些非法的字节值。尝试在调用SQL之前打印它(使用_System.out.println_或类似的)。 – 2015-08-24 11:36:58

回答

3

的文档BigInteger.toByteArray()

返回包含此BigInteger的二进制补码表示的字节数组。字节数组将采用big-endian字节顺序:最重要的字节位于第零个元素中。

这有什么做用十进制表示吧!你想用BigInteger.toString()来得到字符串。