jdbc连接OceanBase 默认的线程级别的sql_mode与全局级别的sql_mode不符

如果应用开发规范规定的sql_mode参数值与OceanBase默认不一致,很容易踩坑。

见图片:

另外企业版ODC也有该问题,社区版不清楚,建议检查。

mysql驱动也会加 STRICT_TRANS_TABLES

可以参考
mysql驱动 mysql-connector-j/ConnectionImpl.java at release/5.1 · mysql/mysql-connector-j · GitHub

oceanbase驱动 obconnector-j/AbstractConnectProtocol.java at master · oceanbase/obconnector-j · GitHub

虽然我们的sql_mode参数与系统默认不一样,但用jdbc从来都没有添加过sql_mode参数,都是数据库全局级别设置好,应用也没出过错。
但适配ob的时候应用报错了。。。最后检查是因为sql_mode
搞不懂

navicate也不会变更客户线程级别的sql_mode,ODC就会给改。。。