开发者社区 > 大数据与机器学习 > 实时数仓 Hologres > 正文

"Hologres中这个语句很奇怪,单独执行select没有问题,但是做插入就提示错误,什么原因?

"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条"

展开
收起
小易01 2023-07-26 08:45:27 163 0
1 条回答
写回答
取消 提交回答
  • "Hologres中出现"错误原因: ERROR: Feature not supported: Non-Scalar Subquery"的提示意思是不支持非标量子查询的特性。

    在您提供的语句中,插入语句包含一个子查询作为值的一部分。然而,Hologres目前不支持将非标量子查询用作插入语句的一部分。

    解决这个问题的方法可以尝试以下几种:

    1. 改写查询:将子查询改写成标量查询,确保子查询返回的结果是单个值而不是多行或多列结果集。这样可以使插入语句变为标量操作,从而避免该错误。

    2. 拆分操作:首先执行查询语句获取所需的结果集,然后将结果集保存到临时表中,最后使用插入语句从临时表中将数据插入到目标表中。这样可以避免在插入语句中使用复杂的子查询。

    3. 使用其他方式处理数据:根据您的具体需求,可以考虑使用其他方式处理数据,如使用编程语言或脚本来处理查询结果并执行插入操作。

    请注意,以上建议可能需要根据具体情况进行调整和修改。如果问题仍然存在或需要更详细的帮助,请联系 Hologres 的技术支持团队,他们将能够为您提供更具体的解决方案。

    2023-07-28 23:35:58
    赞同 展开评论 打赏

本技术圈将为大家分析有关阿里云产品Hologres的最新产品动态、技术解读等,也欢迎大家加入钉钉群--实时数仓Hologres交流群32314975

相关产品

  • 实时数仓 Hologres
  • 相关电子书

    更多
    实时数仓Workshop(广州站)- 李佳林 立即下载
    阿里云实时数仓Hologres技术揭秘2.0 立即下载
    实时数仓Hologres技术实战一本通2.0版(下) 立即下载