瀚高数据库V457-执行快速比较采样SQL时,出现了“tablesample method BERNOULLI does not exist”

数据库版本

瀚高安全版数据库系统V4.5.7, aarch64平台, 创建日期:20250918

执行sql1:

sql 复制代码
select "ZXBH","JZRQ","GRDKZH","DQQC","YWLSH","XuHao","DKYWMXLX" 
from "bsp"."ac0205" TABLESAMPLE BERNOULLI(3.64) 
order by "ZXBH","JZRQ","GRDKZH","DQQC","YWLSH","XuHao","DKYWMXLX"

执行查询:

2026-02-06 11:12:28.177 INFO ImmediateWorker-hg2hg0205a-fastcmp-src203hg05a-tgt203hg05a-ImmediateCreator c.b.p.f.PostgresqlTableAutoSlicer:239 - fast compare sample sql :select "ZXBH","JZRQ","GRDKZH","DQQC"

,"YWLSH","XuHao","DKYWMXLX" from "bsp"."ac0205" TABLESAMPLE BERNOULLI(3.64) order by "ZXBH","JZRQ","GRDKZH","DQQC","YWLSH","XuHao","DKYWMXLX"

2026-02-06 11:12:28.243 ERROR ImmediateWorker-hg2hg0205a-fastcmp-src203hg05a-tgt203hg05a-ImmediateCreator c.b.p.f.PostgresqlTableAutoSlicer:314 - table:ac0205分片失败。

com.highgo.jdbc.util.PSQLException: ERROR: tablesample method BERNOULLI does not exist

Position: 97

先检查抽样方法

执行sql1:

sql 复制代码
SELECT proname, prosrc 
FROM pg_proc 
WHERE proname LIKE '%sample%' OR proname LIKE '%bernoulli%' OR proname LIKE '%system%';

执行查询:

执行sql2:

替换关键字bernoulli小写

sql 复制代码
select "ZXBH","JZRQ","GRDKZH","DQQC","YWLSH","XuHao","DKYWMXLX" 
from "bsp"."ac0205" TABLESAMPLE bernoulli(3.64) order by "ZXBH","JZRQ","GRDKZH","DQQC","YWLSH","XuHao","DKYWMXLX"

换小写关键字可以查询bernoulli

执行查询:

考虑数据库大小写规则

sql 复制代码
SELECT name, setting 
FROM pg_settings 
WHERE name LIKE '%case%' OR name LIKE '%sensitive%';

瀚高数据库大小写规则参数解释

|name |setting|

|----------------------|-------|

|case_sensitive_db |on |

|krb_caseins_users |off |

|lower_case_table_names|1 |

|newcase_sensitive_db |on |

步骤1:修改大小写规则参数

newcase_sensitive_db=off

新增的在oracle模式下,使用"兼容mysql的大小写开关"

会话级修改

SET newcase_sensitive_db TO off;

执行查询:

sql 复制代码
select "ZXBH","JZRQ","GRDKZH","DQQC","YWLSH","XuHao","DKYWMXLX" 
from "bsp"."ac0205" TABLESAMPLE bernoulli(3.64) 
order by "ZXBH","JZRQ","GRDKZH","DQQC","YWLSH","XuHao","DKYWMXLX";

select "ZXBH","JZRQ","GRDKZH","DQQC","YWLSH","XuHao","DKYWMXLX" 
from "bsp"."ac0205" TABLESAMPLE BERNOULLI(3.64) 
order by "ZXBH","JZRQ","GRDKZH","DQQC","YWLSH","XuHao","DKYWMXLX";

此时BERNOULLI、bernoulli抽样方法都可以执行

相关推荐
AI人工智能+电脑小能手5 小时前
【大白话说Java面试题 第87题】【Mysql篇】第17题:分布式事务的实现原理?
java·数据库·分布式·mysql·面试
yyuuuzz5 小时前
独立站的技术基础与常见运维问题
大数据·运维·服务器·网络·数据库·aws
键盘上的猫头鹰8 小时前
【MySQL 教程(八)】索引、事务、用户管理、导入导出与分页查询
数据库·python·mysql
Royzst8 小时前
数据库知识点
数据库
雪的季节9 小时前
企业级 Qt 全功能项目
开发语言·数据库·qt
宋浮檀s9 小时前
应急响应——Web漏洞:命令执行+SSRF+弱口令
运维·数据库·sql·网络安全·oracle·应急响应
yurenpai(27届找实习中)10 小时前
redis_点评(21.好友关注——关注、取关功能实现;共同关注功能实现)
数据库·redis·缓存
Rick199310 小时前
索引的排序和分组
数据库·mysql
爱莉希雅&&&10 小时前
zabbix快速搭建和使用
android·linux·数据库·zabbix·监控
JohnYan11 小时前
工作笔记 - PG分组极值
数据库·后端·postgresql