环境
系统平台:N/A
版本:4.5
症状
ISV反馈应用插入数据时报错,如图:
该问题的重现方式:
问题原因
经过分析,SQL语句使用了大小写混合的“SysDate”,而关键字sysdate是小写的。在进行关键字判断时,未匹配上,直接跳过屏蔽判断,进入到后面的处理。而后面转换成小写后又判断为关键字
解决方案
在关键字屏蔽参数flatten_keyword_list添加带双引号的"SysDate",如:
alter system set flatten_keyword_list=‘sysdate,“SysDate”,audit’;
不需要重启,使用:select pg_reload_conf();
即可生效。
经过测试,该方式是可行的。
注意:关键字屏蔽功能是安全版v4.5.6开始有的,之前的版本除非是特殊打包的才会有。