DataWorksdataworks数据服务对参数模糊匹配WHERE 列名 REGEXP '${province}%'报错栏位索引超过许可范围?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这个错误可能是因为您在WHERE子句中使用了正则表达式,但是没有使用ESCAPE关键字来转义特殊字符。
请尝试将您的SQL语句修改为:
SELECT * FROM table_name WHERE column_name REGEXP '${province}' ESCAPE '\\';
其中,table_name
是您的表名,column_name
是包含省份信息的列名,${province}
是您要匹配的省份名称。
注意,在使用ESCAPE关键字时,需要使用反斜杠(\)作为转义字符。
在DataWorks数据服务中,如果执行SQL查询时报错“栏位索引超过许可范围”,可能是由于以下几个原因:
holo类型数据源吗 还是mc类型数据源使用了holo外表加速,需要使用pg的语法 。可以参考看下holo的语法 https://help.aliyun.com/zh/hologres/user-guide/developer-guide/,此回答整理自钉群“DataWorks交流群(答疑@机器人)”
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。