2017-03-08 46 views
-1

在執行下面的查詢我得到一個異常:的Oracle SQL無效的數字格式異常

String queryString="select CONCAT(CONCAT(invoicingCollection.settleNo, '- '),((invoicingCollection.netAmountTcy - invoicingCollection.setlAmountTcy)+(invoicingCollection.taxAmountTcy-invoicingCollection.setlTax‌AmountTcy))) from InvoicingCollection as " + "invoicingCollection where invoicingCollection.portfolio in (:portfolio)"; 

Query query = _em.createQuery(queryString); 
query.setParameter("portfolio",portfolio); 
List<String> querylist=query.getResultList(); 

我得到的錯誤是:

ORA-01722:ORA-01722無效數字

有沒有人知道這個錯誤的可能修復?

P.S.當我在SQL Developer中執行相同的結果時,我得到了我想要的結果。

+0

你也有錯字錯誤「失蹤分號」。這可能無法解決您當前的問題,但應該防止程序的編譯問題。 –

+0

顯示創建'queryString'的實際代碼,以及完整的堆棧跟蹤和'column6'的值。 –

+0

請勿在註釋中發佈其他信息。請[編輯]您的原始文章並在那裏添加信息。然後刪除您的評論。 –

回答

1

ORA-01722是無效的數字錯誤。您試圖顯式或隱式地嘗試將字符串轉換爲數字,並且失敗。

您的查詢也存在問題。 Oracle支持SELECT列表中的表別名AS,但不支持FROM列表中的表別名AS

試試這個更新的查詢:

String queryString="SELECT Concat(Concat(invoicingcollection.settleno, '- '), ((invoicingcollection.netamounttcy - invoicingcollection.setlamounttcy) + (invoicingcollection.taxamounttcy - invoicingcollection.setltax‌amounttcy))) FROM invoicingcollection invoicingCollection WHERE invoicingcollection.portfolio IN (:portfolio) "; 
+0

謝謝..你編輯也工作,我也發現另一種方式..我執行查詢作爲本機查詢,它的工作形式。 –