设为首页
收藏本站
切换到宽版
社区
人才交流
观远BI合伙人计划
登录
问答
›
查看内容
返回列表
发布新帖
表格填报权限自由模式配置 CURRENT_USER 后,查看数据报 PostgreSQL 语法错误
16
1
观小年
Lv.1
发表于
昨天 15:50
|
查看全部
阅读模式
在表单数据权限中使用自由模式配置权限公式后,查看数据时报错:
获取数据失败: org.postgresql.util.PSQLException:ERROR: syntax error at or near "CURRENT_USER_MOCK_FM_ID"Position: 936当前配置类似:
[所属单位] in [CURRENT_USER.财务统计单位]补充说明:这里的 PostgreSQL 不是 BI 直连 PostgreSQL 数据集,而是抽取数据集/表单链路中后台执行时报出的错误。
快速回复
回复
举报
电梯直达
评论
1
观小年
楼主
Lv.1
发表于
昨天 15:51
|
查看全部
这个报错不是抽取数据集本身的问题,也不是 BI 直连 PostgreSQL 行权限语法问题。日志显示实际报错发生在 SurveyEngine 的表单数据接口:
POST /api/form/{fmId}/data
com.guandata.survey.server.service.DataService.getData
也就是说,查看表单数据时,SurveyEngine 会根据表单数据权限拼接 SQL,并落到 SurveyEngine 自己的数据存储库执行。当前环境该存储库使用 PostgreSQL,因此错误信息中会出现 PostgreSQL 的 PSQLException。
根因是自由模式中的 in 写法不合法:
[所属单位] in [CURRENT_USER.财务统计单位]
SurveyEngine 自由模式会把 [CURRENT_USER.财务统计单位] 解析为一个模拟的当前用户属性临时表字段,内部别名类似:
"CURRENT_USER_MOCK_FM_ID"."财务统计单位字段"
但 PostgreSQL 的 IN 右侧必须是列表或子查询,例如 IN (...),不能直接接一个字段引用,所以最终 SQL 会语法错误。
如果 财务统计单位 是单值,建议改为:
[所属单位] = [CURRENT_USER.财务统计单位]
如果 财务统计单位 是逗号分隔的多值,例如 A,B,C,建议改为 PostgreSQL 可执行的包含判断:
POSITION(',' || [所属单位] || ',' IN ',' || [CURRENT_USER.财务统计单位] || ',') > 0
回复
顶
举报
返回列表
发布新帖
回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
观小年
Lv.1 注册会员
主题
32
回帖
78
积分
398
+ 关注
Ta的主页
微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
产品
观远BI
BI Copilot
移动分析
智能ETL
报表分析
多维分析
解决方案
消费品
泛零售
金融
互联网
先进制造
资源与服务
资源下载
直播干货
BI行业资讯
观远学堂
帮助中心
技术支持
伙伴与生态
生态合作伙伴
观远BI合伙人计划
关于我们
公司介绍
荣誉奖项
行业资质
市场活动
Copyright © 2001-2026
观远社区
版权所有
All Rights Reserved.
浙 ICP 备15006424号-3
去回复
去发帖
返回顶部
快速回复
返回顶部
返回列表