doris用catalog访问各种数据源中文正则
2026/6/10 22:11:31 网站建设 项目流程

1、'^[\u4e00-\u9fa5]+$'

'^[\u4e00-\u9fa5]+$' 在mysql数据源可以匹配到数据,但是经常会报下面报错。而且oracle、达梦、pg很多数据库都不能正确匹配出洪文。

报错1

detailMessage = (disaggregated-cluster-cg1-0.disaggregated-cluster-cg1.doris-cluster.svc.cluster.local.)[INTERNAL_ERROR]Invalid regex expression: ^[\u4e00-\u9fa5]+$

报错2

detailMessage = (disaggregated-cluster-cg1-0.disaggregated-cluster-cg1.doris-cluster.svc.cluster.local.)[INTERNAL_ERROR]JdbcExecutorException: resultSet to get next error: | CAUSED BY: SQLException:The regular expression contains an [x-y] character range where x comes after y.

报错都是偶尔报错,可能执行5次,报错一次。网上解释是可能doris下推正则有问题,特别是doris引擎有多个节点,就更加容易报错

select * from test.test_a_100w
where name not regexp '^[\u4e00-\u9fa5]+$'

2、^[\\x{4e00}-\\x{9fa5}]+$

报错减少,但是mysql不能正确匹配中文。 oracle,达梦、pg等多种数据库可以正常匹配正文

select * from test.test_a_100w
where name not regexp '^[\\x{4e00}-\\x{9fa5}]+$' limit 10

3、 '^[一-龥]+$'

试了mysql、达梦、hanna、pg、sqlserver等多种数据源,都能够正常匹配正文,而且不报错


select EMP_ID as data_id,* from cecece.SCHEMA01.EMPLOYEES where EMP_NAME not regexp '^[一-龥]+$'

结论:

doris使用 '^[一-龥]+$' 匹配中文

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询