OBIEE12c管理工具更新物理表行计数失败报nQSError:10058错误
OBIEE 12c 更新物理表行计数nQSError:10058 报错排查与解决
报错详情:[NQODBC][SQL_STATE:HY000][nQSError:10058] A general error has occurred
运行环境:Oracle Database 19c,OBIEE 12.2.1.4
排查步骤
1. 数据库侧基础校验
- 验证OBIEE物理层对应数据库连接池的有效性:打开OBIEE管理工具物理层,双击目标数据库的连接池,点击测试连接按钮,确认可正常连通。如果连接失败,依次检查连接串配置是否正确、数据库账号密码是否过期、账号是否被锁定
- 使用OBIEE配置的数据库账号直接登录Oracle 19c,执行
SELECT COUNT(*) FROM 目标物理表名;,确认语句可正常返回结果,无锁表、权限不足、表/视图不存在等数据库侧报错 - 验证账号是否拥有系统视图查询权限:执行
SELECT NUM_ROWS FROM ALL_TABLES WHERE TABLE_NAME='<表名大写>' AND OWNER='<表所属用户名大写>';,确认可正常查询到表的统计行数
2. OBIEE 日志定位明细错误
- 到OBIEE服务端查询BI服务日志,默认路径为
$DOMAIN_HOME/servers/obis1/logs/obis1.log,搜索报错时间点附近的nQSError:10058关键字,查看完整报错栈,确认是否存在更具体的错误原因(如SQL语法不兼容、网络超时、数据类型转换异常等) - 开启OBIEE管理工具本地日志:点击「工具」-「选项」-「日志记录」,将日志级别调整为最高后复现更新行计数的操作,查看本地生成的日志获取更多错误信息
3. 兼容性与特殊场景排查
- 检查OBIEE 12.2.1.4是否安装了适配Oracle 19c的补丁:OBIEE 12.2.1.4原生默认不支持Oracle 19c,需要提前安装补丁30868158,未安装补丁会导致大量元数据操作类通用报错
- 确认目标物理表是否为分区表、临时表,是否包含特殊字符作为表名/字段名、是否存在大对象类型字段,这类特殊表会触发OBIEE自动统计行计数的逻辑异常
解决方案
- 连接/权限类问题:更新连接池的错误配置、重置过期的数据库账号密码、为账号授予目标表的
SELECT权限、以及ALL_TABLES系统视图的查询权限 - 兼容性缺失问题:备份OBIEE RPD元数据与服务配置后,安装对应Oracle 19c适配补丁,重启OBIEE所有服务后再重试更新行计数操作
- 特殊表统计逻辑异常问题:无需使用自动更新功能,直接将数据库侧查询到的
NUM_ROWS数值手动填入物理表属性的行计数字段即可
内容的提问来源于stack exchange,提问作者mioshi nakana
相关产品推荐
相关产品推荐

