簡體   English   中英

獲取無效數字異常:ORA-01722:在金額字段中使用十進制值執行查詢時無效數字

[英]getting Invalid Number exception : ORA-01722: invalid number while executing query with decimal value in the amount field

我在執行查詢時遇到無效數字異常。 請幫我解決這個問題。 在數據庫中正確執行相同的查詢。

注意:使用十進制 (12.87) 傳遞金額時出現錯誤,如果沒有十進制,它運行良好。

代碼:

@PersistenceContext 私有 EntityManager em;

查詢 = 查詢 =em.createNativeQuery(sql, class.forName(search.getDBEntityClassName())); 列表結果 = query.getResultList();

表定義:

視圖:VW_SEARCH_TMP

數量:數量(11,2); // 當使用數字 (10) 進行搜索時效果很好。 但是十進制(10.12)得到錯誤ID:NUMBER(11);

查詢:ReadAllQuery(referenceClass=VwSearchCheque sql="SELECT * FROM (SELECT * FROM VW_SEARCH_TMP WHERE ID = ? AND CHEQUE_NO LIKE ? ESCAPE '' AND AMOUNT = ? ORDER BY ISSUE_DATE ASC) WHERE ROWNUM<=501 ")

O [EL 警告]: 2020-10-29 16:26:05.799--UnitOfWork(1908522008)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): ence org.eclipse.persist exceptions.DatabaseException 內部異常:java.sql.SQLSyntaxErrorException:ORA-01722:無效數字

錯誤代碼:1722

在 org.eclipse.persistence.internal.jpa.QueryImpl.getDetailedException(QueryImpl.java:378) 在 org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:260) 在 org.eclipse.persistence.internal .jpa.QueryImpl.getResultList(QueryImpl.java:469) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95) at sun.reflect.DelegatingMethodAccessorImplating.inAccessvoke(Native Method) .java:56) 在 java.lang.reflect.Method.invoke(Method.java:620) 在 org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:375) 在 com.sun.proxy。 $Proxy161.getResultList(Unknown Source) at ca.on.jus.tms.searchEngine.service.SearchServiceImpl.search(SearchServiceImpl.java:179) at ca.on.jus.tms.web.controller.search.SearchController.searchEntity( SearchController.java:41) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56) at java.lang.reflect.Method.invoke(Method.java:620) at org.springframework.web。 method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) at org.springframework.web.servlet.mvc.method.annotation。 ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:854) 在 org.springframework.web.servlet.mvc.method.annotation。 RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:765) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) 引起:org.eclipse。 persistence.exceptions.DatabaseException: 內部異常: java.sql.SQLSyntaxErrorException: ORA-01722: 無效數字

在使用十進制 (12.87) 傳遞金額時,我收到錯誤並且沒有十進制它運行良好

看起來小數點字符不是點,而是逗號。

改為嘗試12,87

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM