繁体   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