java - "java.sql.SQLException: [Amazon](500310) Invalid operation: syntax error at end of input"用于使用 JDBC 的 redshift 查询

标签 java sql jdbc amazon-redshift spring-jdbc

我有一个 redshift 查询,当我通过 SQL Workbench 运行时工作正常,但当我通过 JDBC 连接运行它时,它会抛出错误。

这是我的查询。

SELECT
    ST.TRANSACTION_ID AS TRANSACTION_ID
    , nvl(CASE WHEN RIGHT(rtrim(STC.name_on_card), 1) = '/' THEN replace(rtrim(STC.name_on_card), '/', '') ELSE replace(rtrim(STC.name_on_card), '/', ', ') END, '') AS PASSENGER_NAME
    , convert(VARCHAR, STF.FLIGHT_DATE) AS TRIP_DATE
    , nvl(STI.COST, 0) AS DISCOUNTED_UNIT_PRICE
    , STI.original_price AS ORIGINAL_UNIT_PRICE
    , CASE
            WHEN STI.COMP_IND = 1 and STI.ADJUSTED_PRICE IS NULL THEN 0
            WHEN STI.ADJUSTED_PRICE IS NULL                      THEN STI.original_price
            ELSE STI.ADJUSTED_PRICE
            END AS ACTUAL_UNIT_PRICE

    , nvl(STIT.TAX_AMOUNT, 0) AS TAX_TOTAL
    , REPLACE(STIT.TAX_CODE, ' ', '') AS TAX_CODE
    , nvl(STIT.TAX_RATE, 0) AS TAX_RATE
    , CAST(STIT.IS_FIXED_RATE AS INTEGER) AS IS_FIXED_RATE
    , nvl(STIT.TAX_AMOUNT, 0) AS TAX_AMOUNT
    , CUST.ID AS CUST_ID
    , CASE WHEN TCR.TAX_NOTE IS NULL THEN ('') ELSE TCR.TAX_NOTE END AS TAX_NOTE
    , ST.ID AS SALES_TRANSACTION_INSTANCE_ID
    FROM public.SALES_TRANSACTION_ITEMS_VIEW STI
        INNER JOIN public.SALES_TRANSACTION_INSTANCE_VIEW ST     ON ST.ID                        = STI.SALES_TRANSACTION_INSTANCE_ID
        INNER JOIN public.SALES_TRANSACTION_FLIGHT_VIEW STF      ON STF.ID                       = ST.SALES_TRANSACTION_FLIGHT_ID
        INNER JOIN public.AIRPORT_VIEW ORIGIN                    ON STF.FLIGHT_ORIGIN_AIRPORT_ID = ORIGIN.ID
        INNER JOIN public.AIRPORT_VIEW DEST                      ON STF.FLIGHT_DESTINATION_AIRPORT_ID = DEST.ID
        INNER JOIN public.CITY_VIEW ORIGIN_CITY                  ON ORIGIN.CITY_ID                    = ORIGIN_CITY.ID
        INNER JOIN public.CITY_VIEW DEST_CITY                    ON DEST.CITY_ID                      = DEST_CITY.ID
        LEFT  JOIN public.SALES_TRANSACTION_ITEM_TAXES_VIEW STIT ON STI.ID                            = STIT.SALES_TRANSACTION_ITEM_ID
        LEFT  JOIN public.TAX_CALCULATION_RULES_VIEW TCR         ON STIT.TAX_RULE_ID                  = TCR.ID
        INNER JOIN public.CUSTOMER_VIEW CUST                     ON CUST.ID                           = STF.CARRIER_ID
        INNER JOIN public.TAX_MODEL_VIEW TM                      ON TM.ID                             = CUST.TAX_MODEL_ID
        LEFT  JOIN
                  (
                    SELECT
                        SALES_TRANSACTION_INSTANCE_ID
                        , MIN(ID) as MIN_ID
                    FROM public.SALES_TRANSACTION_CREDITCARD_VIEW
                            GROUP BY SALES_TRANSACTION_INSTANCE_ID
                  ) AS STCC_NAME
                                                                 ON STCC_NAME.SALES_TRANSACTION_INSTANCE_ID = ST.ID
        LEFT JOIN public.SALES_TRANSACTION_CREDITCARD_VIEW STC   ON STC.id                                  = STCC_NAME.MIN_ID
        WHERE ST.TRANSACTION_ID = #{transaction};

这是错误消息:

### Cause: java.sql.SQLException: [Amazon](500310) Invalid operation: syntax error at end of input 
Position: 240;
; bad SQL grammar []; nested exception is java.sql.SQLException: [Amazon](500310) Invalid operation: syntax error at end of input 
Position: 240;] with root cause
com.amazon.support.exceptions.ErrorException: [Amazon](500310) Invalid operation: syntax error at end of input 
Position: 240;
    at com.amazon.redshift.client.messages.inbound.ErrorResponse.toErrorException(Unknown Source) ~[redshift-jdbc42-no-awssdk-1.2.16.1027.jar:na]
    at com.amazon.redshift.client.PGMessagingContext.handleErrorResponse(Unknown Source) ~[redshift-jdbc42-no-awssdk-1.2.16.1027.jar:na]
    at com.amazon.redshift.client.PGMessagingContext.handleMessage(Unknown Source) ~[redshift-jdbc42-no-awssdk-1.2.16.1027.jar:na]
    at com.amazon.jdbc.communications.InboundMessagesPipeline.getNextMessageOfClass(Unknown Source) ~[redshift-jdbc42-no-awssdk-1.2.16.1027.jar:na]
    at com.amazon.redshift.client.PGMessagingContext.doMoveToNextClass(Unknown Source) ~[redshift-jdbc42-no-awssdk-1.2.16.1027.jar:na]
    at com.amazon.redshift.client.PGMessagingContext.getParameterDescription(Unknown Source) ~[redshift-jdbc42-no-awssdk-1.2.16.1027.jar:na]
    at com.amazon.redshift.client.PGClient.prepareStatement(Unknown Source) ~[redshift-jdbc42-no-awssdk-1.2.16.1027.jar:na]
    at com.amazon.redshift.dataengine.PGQueryExecutor.<init>(Unknown Source) ~[redshift-jdbc42-no-awssdk-1.2.16.1027.jar:na]
    at com.amazon.redshift.dataengine.PGDataEngine.prepare(Unknown Source) ~[redshift-jdbc42-no-awssdk-1.2.16.1027.jar:na]
    at com.amazon.jdbc.common.SPreparedStatement.<init>(Unknown Source) ~[redshift-jdbc42-no-awssdk-1.2.16.1027.jar:na]
    at com.amazon.jdbc.jdbc41.S41PreparedStatement.<init>(Unknown Source) ~[redshift-jdbc42-no-awssdk-1.2.16.1027.jar:na]
    at com.amazon.jdbc.jdbc42.S42PreparedStatement.<init>(Unknown Source) ~[redshift-jdbc42-no-awssdk-1.2.16.1027.jar:na]
    at com.amazon.redshift.core.jdbc42.PGJDBC42PreparedStatement.<init>(Unknown Source) ~[redshift-jdbc42-no-awssdk-1.2.16.1027.jar:na]
    at com.amazon.redshift.core.jdbc42.PGJDBC42ObjectFactory.createPreparedStatement(Unknown Source) ~[redshift-jdbc42-no-awssdk-1.2.16.1027.jar:na]
    at com.amazon.jdbc.common.SConnection.prepareStatement(Unknown Source) ~[redshift-jdbc42-no-awssdk-1.2.16.1027.jar:na]
    at com.amazon.jdbc.common.SConnection.prepareStatement(Unknown Source) ~[redshift-jdbc42-no-awssdk-1.2.16.1027.jar:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_171]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_171]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]
    at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:126) ~[tomcat-jdbc-8.5.14.jar:na]
    at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:108) ~[tomcat-jdbc-8.5.14.jar:na]
    at org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke(AbstractCreateStatementInterceptor.java:75) ~[tomcat-jdbc-8.5.14.jar:na]
    at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:108) ~[tomcat-jdbc-8.5.14.jar:na]
    at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:81) ~[tomcat-jdbc-8.5.14.jar:na]
    at com.sun.proxy.$Proxy97.prepareStatement(Unknown Source) ~[na:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_171]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_171]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]
    at org.apache.ibatis.logging.jdbc.ConnectionLogger.invoke(ConnectionLogger.java:55) ~[mybatis-3.4.4.jar:3.4.4]
    at com.sun.proxy.$Proxy102.prepareStatement(Unknown Source) ~[na:na]
    at org.apache.ibatis.executor.statement.PreparedStatementHandler.instantiateStatement(PreparedStatementHandler.java:87) ~[mybatis-3.4.4.jar:3.4.4]
    at org.apache.ibatis.executor.statement.BaseStatementHandler.prepare(BaseStatementHandler.java:88) ~[mybatis-3.4.4.jar:3.4.4]
    at org.apache.ibatis.executor.statement.RoutingStatementHandler.prepare(RoutingStatementHandler.java:59) ~[mybatis-3.4.4.jar:3.4.4]
    at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:85) ~[mybatis-3.4.4.jar:3.4.4]
    at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62) ~[mybatis-3.4.4.jar:3.4.4]
    at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324) ~[mybatis-3.4.4.jar:3.4.4]
    at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) ~[mybatis-3.4.4.jar:3.4.4]
    at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) ~[mybatis-3.4.4.jar:3.4.4]
    at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83) ~[mybatis-3.4.4.jar:3.4.4]
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148) ~[mybatis-3.4.4.jar:3.4.4]
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141) ~[mybatis-3.4.4.jar:3.4.4]
    at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:77) ~[mybatis-3.4.4.jar:3.4.4]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_171]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_171]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433) ~[mybatis-spring-1.3.1.jar:1.3.1]
    at com.sun.proxy.$Proxy69.selectOne(Unknown Source) ~[na:na]
    at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:166) ~[mybatis-spring-1.3.1.jar:1.3.1]
    at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:82) ~[mybatis-3.4.4.jar:3.4.4]
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59) ~[mybatis-3.4.4.jar:3.4.4]
    at com.sun.proxy.$Proxy73.getSale(Unknown Source) ~[na:na]
    at com.guestlogix.sale.repository.impl.SaleRepositoryImpl.getsReceiptForPassenger(SaleRepositoryImpl.java:34) ~[main/:na]
    at com.guestlogix.sale.service.impl.SaleServiceImpl.getsReceiptForPassenger(SaleServiceImpl.java:41) ~[main/:na]
    at com.guestlogix.receipt.controller.ReceiptController.getTransactionsDetails(ReceiptController.java:136) ~[main/:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_171]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_171]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) ~[spring-webmvc-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) ~[spring-webmvc-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) ~[spring-webmvc-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) ~[spring-webmvc-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ~[spring-webmvc-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) ~[spring-webmvc-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) ~[spring-webmvc-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) ~[spring-webmvc-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) ~[tomcat-servlet-api-8.5.15.jar:na]
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) ~[spring-webmvc-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) ~[tomcat-servlet-api-8.5.15.jar:na]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.14.jar:8.5.14]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55) ~[spring-boot-1.5.3.RELEASE.jar:1.5.3.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110) ~[spring-boot-actuator-1.5.3.RELEASE.jar:1.5.3.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:105) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106) ~[spring-boot-actuator-1.5.3.RELEASE.jar:1.5.3.RELEASE]
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.8.RELEASE.jar:4.3.8.RELEASE]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) ~[tomcat-catalina-8.5.15.jar:8.5.15]
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799) ~[tomcat-coyote-8.5.15.jar:8.5.15]
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) ~[tomcat-coyote-8.5.15.jar:8.5.15]
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861) ~[tomcat-coyote-8.5.15.jar:8.5.15]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455) ~[tomcat-coyote-8.5.15.jar:8.5.15]
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-coyote-8.5.15.jar:8.5.15]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_171]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_171]
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-util-8.5.15.jar:8.5.15]
2018-11-27 12:02:39.247 DEBUG 22032 --- [nio-8082-exec-2] o.s.b.a.e.mvc.EndpointHandlerMapping     : Looking up handler method for path /error
2018-11-27 12:02:39.248 DEBUG 22032 --- [nio-8082-exec-2] o.s.b.a.e.mvc.EndpointHandlerMapping     : Did not find handler method for [/error]

我无法得到什么是“输入末尾的错误”。我尝试将该参数放在单引号内,但它仍然不起作用。

最佳答案

我通过将 CONVERT(type, expression) 函数替换为 CAST(expression AS type) 来解决该问题。尽管 CONVERT() 在 Redshift 文档中被列为有效函数,但在我的例子中,它是导致此错误的原因。

https://docs.aws.amazon.com/redshift/latest/dg/r_CAST_function.html

我知道这篇文章已经有 8 个月了,但我是在遇到同样的问题后才发现的。

编辑:AWS 支持论坛上报告了类似问题:https://forums.aws.amazon.com/thread.jspa?messageID=901951

关于java - "java.sql.SQLException: [Amazon](500310) Invalid operation: syntax error at end of input"用于使用 JDBC 的 redshift 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53507099/

相关文章:

java - 检查 sun.misc.Queue 的大小

php - 如何在 MySql 中更新 Json 数据类型?

SQL Server 2008 - 内部联接

java - 动态切换数据源

java - 如何在 JDBC 中检索 MySQL 主键的最大值?

java - Eclipse CSV下载截断数据

java - 无法访问 localhost 中的 Tomcat 默认页面 :8080 for Ubuntu 16. 04 Docker 容器

java - 投影鼠标坐标

java - 如何禁用tomcat缓存?

sql - BULK INSERT 格式文件中的正确排序规则