oracle12c版本下一些函数问题
创始人
2024-05-29 16:39:07
0

oracle12c版本下一些语法上的区别

最近在做达梦数据库迁移到oracle12c数据上遇到了一些问题,主要在于达梦和oracle12c版本下一些函数、函数的使用上一些区别,整理了一下,大家在使用oracle12c版本时需要注意。

1、WM_CONCAT函数

WM_CONCAT函数在oracle12c以上版本中已经抛弃,不在使用,所以使用WM_CONCAT()函数会报错,可以用listagg()列转行函数进行替换。

老:wm_concat(to_char(JLMARK.DMCPT))
新:listagg(to_char(JLMARK.DMCPT),',')within group ( order by JLMARK.INPFRQ)

2、两日期相减得天数

在达梦、oracle10g版本下可以直接使用两个日期类型的字段进行相减可以直接得到天数,再用to_number()函数可区别相对应的天数,在oracle12c版本上两个日期相减得到的不是一个number类型的数值,在进行to_number()函数进行转换时会报错。

老:TO_NUMBER(sysdate - createtime)
新:to_number(to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')-to_date(to_char(createtime,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'))

在这块为啥先用to_char格式化日期,是因为直接使用to_date()函数转换时在oracle12c版本上会报错类型不一致问题,所以先用to_char()将字段类型改为一致,在进行to_date()进行转换即可。

3、listagg函数注意事项

在oracle12c版本上多条记录在进行列转行时注意如果有null值时,就会导致结果出现乱码问题,需要用to_char(字段,‘’)进行转换一下,避免出现结果乱码问题。

老:listagg(name)
新:listagg(to_char(name),',')

4、nullif函数

nullif用来比较两边的值是否相等,如果两个表达式相等,NULLIF 返回空值NULL。如果两个表达式不相等,NULLIF 返回第一个 expression1 的值。在oracle12c版本上需要保持两个表达式的数据类型一致,否则报错,达梦上部分情况下不需要保持一致即可执行成功。

XZBZSY number 类型
老:nullif(XZBZSY,'0')
新:nullif(XZBZSY,null)

5、日期类型需要转换

在oracle12c版本下,数据库的日期返回到controller时,如果返回对象为map接收时,将map封装成jsonObject对象时,如果日期不进行to_char()转换时,在进行封装时就会报错(net.sf.json.JSONObject cannot be cast to java.lang.String)

老:CREATETIME
新:to_char(CREATETIME,'yyyy-MM-dd HH24:mi:ss')

相关内容

热门资讯

热点推荐“贝众乐游到底有没有透... 热点推荐“贝众乐游到底有没有透视挂吗”原来真的有挂是一款可以让一直输的玩家,快速成为一个“必胜”的a...
热点推荐“88娱乐城到底有没有... 热点推荐“88娱乐城到底有没有透视挂吗”原来真的有挂;原来确实真的有挂(需添加指定薇7198902获...
热点推荐“传奇德州到底有没有透... 您好,传奇德州这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
热点推荐“精品乐清麻将到底有没... 热点推荐“精品乐清麻将到底有没有透视挂吗”原来真的有挂是一款可以让一直输的玩家,快速成为一个“必胜”...
热点推荐“湘叶娱乐到底有没有透... 热点推荐“湘叶娱乐到底有没有透视挂吗”原来真的有挂1、让任何用户在无需AI插件第三方神器的情况下就能...
热点推荐“新友茶社到底有没有透... 您好,新友茶社这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
热点推荐“网上斗牛到底有没有透... 亲,网上斗牛这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,网上斗牛的开挂软件,名...
热点推荐“雀悦诏安麻将到底有没... 雀悦诏安麻将这个游戏其实有挂的,确实是有挂的,需要了解加客服微信:【7198902】, 很多玩家在这...
热点推荐“棋牌室到底有没有透视... 您好:棋牌室确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打牌都会发现...
热点推荐“微友联盟到底有没有透... 亲,微友联盟这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,微友联盟的开挂软件,名...
热点推荐“众联到底有没有透视挂... 热点推荐“众联到底有没有透视挂吗”原来真的有挂1、让任何用户在无需AI插件第三方神器的情况下就能够完...
热点推荐“雀神麻将到底有没有透... 热点推荐“雀神麻将到底有没有透视挂吗”原来真的有挂是一款可以让一直输的玩家,快速成为一个“必胜”的a...
热点推荐“越记乡游到底有没有透... 热点推荐“越记乡游到底有没有透视挂吗”原来真的有挂;原来确实真的有挂(需添加指定薇7198902获取...
热点推荐“麻友圈2贵州麻将到底... 您好:麻友圈2贵州麻将确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打...
热点推荐“乐天棋牌到底有没有透... 热点推荐“乐天棋牌到底有没有透视挂吗”原来真的有挂是一款可以让一直输的玩家,快速成为一个“必胜”的a...
热点推荐“海星到底有没有透视挂... 您好:海星确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打牌都会发现很...
热点推荐“潮汕馆到底有没有透视... 您好:潮汕馆确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打牌都会发现...
热点推荐“乐享贵州麻将到底有没... 乐享贵州麻将这个游戏其实有挂的,确实是有挂的,需要了解加客服微信:【7198902】, 很多玩家在这...
热点推荐“汇友娱乐到底有没有透... 您好:汇友娱乐确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打牌都会发...
热点推荐“hhpoker脚本到... 热点推荐“hhpoker脚本到底有没有透视挂吗”原来真的有挂1、让任何用户在无需AI插件第三方神器的...