数据转型导致的数据库SQL执行错误
更新时间: 2021-04-21 17:26:30
阅读 3168
数据转型导致的数据库SQL执行错误
这类错误的现象常常如下:
仔细查阅错误,一般会有更多的提示内容,比如
ERROR: invalid value “pres” for “YYYY” (seg6 slice3 gpdb3.lt.163.org:40000 pid=1***)
Detail: Value must be an integer.
从这个错误提示其实大致能知道,应该是某个字段转型为日期的时候,其字段含有脏数据。比如这个错误内容里就提示,脏数据是字符串”pres”
在报错的SQL里,我们进一步可以查出来哪些字段参与了日期转型,在这个例子里可以看到reception_time参与了日期转型,那么我们可以这么做:
我们做一个表格,然后把reception_time还原为原始的格式(原始格式一般是字符串,就是从字符串转成日期的这个过程有问题),将reception_time拉到表格上。然后使用数据筛选器,在筛选器的列表里我们可以看到,大部分reception_time都是正常的”2019-04-01”等格式,但是随后发现有数十个字段值里内容是”presale”,也就是说”presale”是无法转型成日期的,就是这些内容导致了报错,所以要解决这个报错,需要在源表里对这些数据进行处理。
如果不适合在报表层做这些操作,可以尝试进入模型,利用模型筛选器做。
文档反馈
以上内容对您是否有帮助?