丢弃空的参数

这个人_PNl2A青铜一 显示全部楼层 发表于 2019-5-17 18:38:04 |阅读模式 打印 上一主题 下一主题
界面也没有报错,刷新sql就报错

什么原因

什么原因
回复

使用道具 举报

精彩评论4

永洪tech-Lan 显示全部楼层 发表于 2019-5-20 10:32:44
本帖最后由 永洪tech-Lan 于 2019-5-20 10:34 编辑

是你sql中有参数p_date导致的,两种方法解决:
1、修改参数为丢弃空参数的写法--标签形式:<参数> 字段=?{参数} </参数>
2、数据集编辑参数中给参数一个默认值。参考截图:
1558319400(1).jpg


回复 支持 0 反对 1

使用道具 举报

这个人_PNl2A青铜一 显示全部楼层 发表于 2019-5-20 10:06:53
大神解答
回复

使用道具 举报

这个人_PNl2A青铜一 显示全部楼层 发表于 2019-5-20 10:09:29
2019-05-20 09:19:40.777 |-999760-7b1217cdf9744931a66af86ad33ba6a2 |-[ERROR] |-g5.sv.qry.QueryProc.procReq(QueryProc.java:187) | g5.qry.sql.SQLQuery@7f11d146 丢弃空的参数失败: “p_date” in “   SELECT data_date,
ind_id,inst_no,
current_value/100,
last_month_value,last_quarter_value,last_year_value
FROM adm_9909.T_STD_IND_DATA_DAY
WHERE IND_ID='IND000000326'
AND data_date <= to_date(?{p_date} ,'yyyy-MM-dd')
AND data_date >= to_date(?{p_date},'yyyy-MM-dd') -INTERVAL'90days'”。
java.lang.RuntimeException: g5.qry.sql.SQLQuery@7f11d146 丢弃空的参数失败: “p_date” in “   SELECT data_date,
ind_id,inst_no,
current_value/100,
last_month_value,last_quarter_value,last_year_value
FROM adm_9909.T_STD_IND_DATA_DAY
WHERE IND_ID='IND000000326'
AND data_date <= to_date(?{p_date} ,'yyyy-MM-dd')
AND data_date >= to_date(?{p_date},'yyyy-MM-dd') -INTERVAL'90days'”。
        at g5.qry.sql.SQLQuery.replaceParam(SQLQuery.java:636)
        at g5.qry.sql.AbsSQLExecutor.paramProcessedSQL(AbsSQLExecutor.java:469)
        at g5.qry.sql.AbsSQLExecutor.fixMetaSql(AbsSQLExecutor.java:494)
        at g5.qry.sql.AbsSQLExecutor.metaColsQry(AbsSQLExecutor.java:368)
        at g5.qry.sql.AbsSQLExecutor.metaCols(AbsSQLExecutor.java:294)
        at g5.qry.sql.SQLQuery.metaCols(SQLQuery.java:71)
        at g5.sv.qry.req.GetQryMetaReq.process0(GetQryMetaReq.java:80)
        at g5.sv.Req.process(Req.java:37)
        at g5.sv.qry.impl.QueryServiceImpl.process(QueryServiceImpl.java:172)
        at g5.sv.qry.QueryProc.procReq(QueryProc.java:140)
        at g5.sv.qry.QueryProc.service(QueryProc.java:58)
        at g5.sv.ServletHelper.service(ServletHelper.java:94)
        at g5.sv.PortalServlet.service(PortalServlet.java:264)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
        at g5.sv.standardsso.SSOLoginFilter.doFilter(SSOLoginFilter.java:105)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
        at weblogic.websocket.tyrus.TyrusServletFilter.doFilter(TyrusServletFilter.java:274)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3706)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3672)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:328)
        at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)
        at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)
        at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)
        at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2443)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2291)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2269)
        at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1705)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1665)
        at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:272)
        at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352)
        at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)
        at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)
        at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
        at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:652)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:420)
回复 支持 反对

使用道具 举报

yhdata_kse3MyDA白银二 显示全部楼层 发表于 2023-5-5 11:50:32
永洪tech-Lan 发表于 2019-5-20 10:32
是你sql中有参数p_date导致的,两种方法解决:
1、修改参数为丢弃空参数的写法--标签形式: 字段=?{参数}
...

设置默认值没有办法解决前端确实是传了空值的问题,依旧是会报丢失参数错误的,所以还是用标签的方式合理,但是标签要考虑and where
回复 支持 反对

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |联系社区管理员|《永洪社区协议》
返回顶部