我有一個java應用程序,它建立了一個到Orcale數據庫的jdbc連接。我試圖將數據插入到數據庫中,但在涉及到Oracle NUMBER類型時感到困惑。我的表中有三列分別是這些類型的列。jdbc用oracle編寫語句NUMBER類型
NUMBER(38,0)
NUMBER(20,0)
NUMBER(16,0)
我的第一個問題是我應該放什麼類型的Java類型的數據,以便在一份聲明中使用它。
我的第二個問題是可以在準備好的語句中使用哪些set操作來插入數據。
讓我們假設我們正在使用NUMBER(38,0)。我會將java類型設置爲BigInteger嗎?如果我有1的整數這將是
BigInteger one = new BigInteger(1);
然後在我的preparedStatement時它會
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO TABLE(bigInt) VALUES(?)");
pstmt.setLong(1, one);
這似乎不工作,所以我認爲這是不正確的。任何幫助,將不勝感激。
你嘗試setBigDecimal()http://docs.oracle.com/javase/ 6/docs/api/java/sql/PreparedStatement.html#setBigDecimal(int,java.math.BigDecimal) –
@BhavikShah我試過setBigDecimal,它仍然給我ORA-00911:無效字符。我甚至建立和打印出SQL插入語句,然後將其粘貼到SQL開發人員,它工作正常。它只是在Java內失敗。 – medium
我跟着幾個SO問題類似這個..沒有答案不幸的是:(..一個答案,但建議將它存儲爲字符串..做這個工作給你嗎? –