瀚高数据库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抽样方法都可以执行

相关推荐
小高不会迪斯科9 小时前
CMU 15445学习心得(二) 内存管理及数据移动--数据库系统如何玩转内存
数据库·oracle
e***8909 小时前
MySQL 8.0版本JDBC驱动Jar包
数据库·mysql·jar
l1t9 小时前
在wsl的python 3.14.3容器中使用databend包
开发语言·数据库·python·databend
失忆爆表症11 小时前
03_数据库配置指南:PostgreSQL 17 + pgvector 向量存储
数据库·postgresql
AI_567811 小时前
Excel数据透视表提速:Power Query预处理百万数据
数据库·excel
SQL必知必会12 小时前
SQL 窗口帧:ROWS vs RANGE 深度解析
数据库·sql·性能优化
Gauss松鼠会12 小时前
【GaussDB】GaussDB数据库开发设计之JDBC高可用性
数据库·数据库开发·gaussdb
+VX:Fegn089512 小时前
计算机毕业设计|基于springboot + vue鲜花商城系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
识君啊13 小时前
SpringBoot 事务管理解析 - @Transactional 的正确用法与常见坑
java·数据库·spring boot·后端
一个天蝎座 白勺 程序猿13 小时前
破译JSON密码:KingbaseES全场景JSON数据处理实战指南
数据库·sql·json·kingbasees·金仓数据库