"Hologres中这个语句很奇怪,单独执行select没有问题,但是做插入就提示错误,
[15:37:04] [SQL 1/1]:这个错误提示是什么意思呢?我是用超级管理员执行上面的语句。
insert into dwd_db.dwd_sys_holousers
SELECT r.rolname, r.rolsuper, r.rolinherit,
r.rolcreaterole, r.rolcreatedb, r.rolcanlogin,
r.rolconnlimit, r.rolvaliduntil,
ARRAY(SELECT b.rolname
FROM pg_catalog.pg_auth_members m
JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid)
WHERE m.member = r.oid) as memberof
, r.rolreplication
, r.rolbypassrls
FROM pg_catalog.pgroles r
WHERE r.rolname !~ '^pg'
ORDER BY 1
[15:37:04] 执行结束
[15:37:04] [执行失败! 0 row 耗时:18.68ms]
[15:37:04] 错误原因:ERROR: Feature not supported: Non-Scalar Subquery
[15:37:04] 任务结束: 执行1条,总共1条"
"Hologres中出现"错误原因: ERROR: Feature not supported: Non-Scalar Subquery"的提示意思是不支持非标量子查询的特性。
在您提供的语句中,插入语句包含一个子查询作为值的一部分。然而,Hologres目前不支持将非标量子查询用作插入语句的一部分。
解决这个问题的方法可以尝试以下几种:
改写查询:将子查询改写成标量查询,确保子查询返回的结果是单个值而不是多行或多列结果集。这样可以使插入语句变为标量操作,从而避免该错误。
拆分操作:首先执行查询语句获取所需的结果集,然后将结果集保存到临时表中,最后使用插入语句从临时表中将数据插入到目标表中。这样可以避免在插入语句中使用复杂的子查询。
使用其他方式处理数据:根据您的具体需求,可以考虑使用其他方式处理数据,如使用编程语言或脚本来处理查询结果并执行插入操作。
请注意,以上建议可能需要根据具体情况进行调整和修改。如果问题仍然存在或需要更详细的帮助,请联系 Hologres 的技术支持团队,他们将能够为您提供更具体的解决方案。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
本技术圈将为大家分析有关阿里云产品Hologres的最新产品动态、技术解读等,也欢迎大家加入钉钉群--实时数仓Hologres交流群32314975