作为一个码农,每天跟各种代码打交道,遇到bug和各种问题是家常便饭。
逢山开路、遇河架桥,把问题和bug修复就是了。但是今天在编辑一段代码的时候,遇到一个奇怪的问题(你们是要整死我么?)。
首先我在sql窗口执行的时候,一切正常,效率也很高,0.425S就可以完成(洒到爆炸)。
但是当我把它编译成管道化表函数后,再执行就提示错误了(???).
平时这个提示很常见,也很容易解决,但是我对所有的日期和数字都做了字符的转换,仍然是提示错误,度娘了变天,依旧报错。
最主要问题是在sql窗口能正常执行,但是编译成函数就报错。
1
事出反常必有妖,捉妖技术哪家强?西天灵山找佛祖。我决定搬出佛祖来镇楼:
结果,编译后依旧报错。看来得另请高明了。能与西方佛祖相提并论的那就是道家老祖了;
2
“太极两仪生四象,如今还在掌中存。鸿蒙剖破玄黄景,又在人间治五行。”
一出场就是气度非凡,区区小应该不在话下。
但是编译后,一运行,bug依旧。
3
两位大佬登场都没有效果,估计是bug妖太小,杀鸡焉用牛刀,两位老大没有兴趣。只好另找出路,看着这个错误提示,是那么的方正,一点曲线美感都没有,突然意识到这bug应该是个男的。既然是男的,那就好办了,女神登场,一个顶俩:
4
话不能说的太满,编译后依旧报错。估计是这个女神不够性感,不合bug男的口味,咱换一个:
5
靠, bug依旧在,几度满眼红,心中千万只”草泥马”奔过。灵光一闪,说不定神兽登场,会有奇效:
6
什么神兽,一点用处都没有。不过会不会是气场不够?
鲁迅说过:气场不够,墨镜来凑:
真一个神兽界的社会大哥。
7
靠,大哥的气场也无效。看来要跟我来个你死我活了,我来个死亡警告:
8
唉!看来不是他死,而是我亡,出动了这么多大神,bug依旧存在。
眼睛已经累了,心也累了,往窗外远眺了一下天空,还是回来一行一行检查。
最后终于找出问题所在:虽然area_name本身是字符型,但是在函数中当使用union all 连接两个查询时,依旧需要使用to_char(area_name)或者trim(area_name),否则就会报错,这应该算是Oracle中一个小Bug吧。
敲黑板:
显然,上面的代码注释对解决bug一点用处都没有,但是它可以让死板的代码生动一些,可以让黑白相间的代码色彩丰富一点,可以让枯燥的码农有趣一点,不也是挺好的嘛!
领取专属 10元无门槛券
私享最新 技术干货