SQL报错无法正常导出

结果.rar

SELECT

tmp.开始,

tmp.结束,

tmp.减小时与不减,

tmp.OT_MINUTE,

tmp.OT_HOURS,

tmp.MEMBER_NAME,

tmp.DEPARTMENT_NAME,

CASE

WHEN instr(tmp.减小时与不减, '.')= 0 THEN tmp.减小时与不减

WHEN substr(tmp.减小时与不减, instr(tmp.减小时与不减, '.')+ 1, 1)* 1 >= 5 THEN substr(tmp.减小时与不减, 1, instr(tmp.减小时与不减, '.')-1)+ 0.5

ELSE 

substr(tmp.减小时与不减, 1 , instr(tmp.减小时与不减, '.')-1)+ 0

END AS 判断

FROM

(

SELECT

t.开始,

t.结束,

round((t.结束-t.开始)* 24-1) AS 小时,

t.OT_MINUTE,

t.OT_HOURS,

t.MEMBER_NAME,

t.DEPARTMENT_NAME, 

CASE

WHEN to_char(t.开始, 'HH24')* 1 <= 11

AND to_char(t.结束, 'HH24')* 1 >= 13 THEN (t.结束-t.开始)* 24-1

ELSE (t.结束-t.开始)* 24

END AS 减小时与不减

FROM

(

SELECT

S.OT_START_DATETIME / (1000 * 60 * 60 * 24)+ TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS') AS 开始,

S.OT_END_DATETIME / (1000 * 60 * 60 * 24)+ TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH24:MI:SS') AS 结束,

S.OVERTIME_TYPE,

S.OT_MINUTE,

S.OT_HOURS,

M.MEMBER_NAME,

M.DEPARTMENT_NAME

FROM

V3XUSER.ATT_OVERTIME_DETAILS S

LEFT JOIN V3XUSER.ATT_MEMBER M ON

S.MEMBER_ID = M.MEMBER_ID

) t

) tmp

oracle的

在DBeaver上导出

SQL查询可以正常运行 在导出的时候报错

substr(tmp.减小时与不减, 1 , instr(tmp.减小时与不减, '.')-1)+ 0这一句开始报错

SQL 错误 [1722] [42000]: ORA-01722: 无效数字

企业微信截图_16563864372974.png

callie 发布于 2022-6-28 11:59 (编辑于 2022-6-28 13:36)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-6-28 12:24(编辑于 2022-6-28 12:25)

这个你把判断这一段注释掉会不会报错?如果不报错。你把出来的数据截图我看一下

注释这一段:

CASE

WHEN instr(tmp.减小时与不减, '.')= 0 THEN tmp.减小时与不减

WHEN substr(tmp.减小时与不减, instr(tmp.减小时与不减, '.')+ 1, 1)* 1 >= 5 THEN substr(tmp.减小时与不减, 1, instr(tmp.减小时与不减, '.')-1)+ 0.5

ELSE 

substr(tmp.减小时与不减, 1 , instr(tmp.减小时与不减, '.')-1)+ 0

END AS 判断

查询可以?你说导出报错。是如何导出的?从报表还是plsql导出

  • callie callie(提问者) 我补充了一张图 就是我sql编辑器直接查没有问题 然后我把结果导出就报错了
    2022-06-28 13:13 
  • CD20160914 CD20160914 回复 callie(提问者) 这个你查询可能只展示了比如100行数据。数据没有问题。导出是所有的。有可能你的时间字段有什么不规范的。你设置查询比如展示出5000行看一下查询是否报错
    2022-06-28 13:14 
  • CD20160914 CD20160914 回复 callie(提问者) 还有使用plsql工具导出看是否报错。。。
    2022-06-28 13:14 
  • callie callie(提问者) 回复 CD20160914 我再试试
    2022-06-28 13:17 
  • CD20160914 CD20160914 回复 callie(提问者) 如果有错误,你可以测试在查询的时候,把我的那个判断注释掉。看原始出来的数据分别是什么。。
    2022-06-28 13:18 
  • 2关注人数
  • 296浏览人数
  • 最后回答于:2022-6-28 13:36
    请选择关闭问题的原因
    确定 取消
    返回顶部