GBase 8s开发与管理 - random
type: channel
link: https://www.gbasedbt.com/index.php/tag/random/
items: GBase 8s随机排序查询

GBase 8s随机排序查询
type: item
date: 2024-12-31T13:37:00+08:00
description: 从oracle迁移到GBase 8s数据库的过程中，有类似select t.* from t order by dbms_random.value进行随机排序查询的写法。GBase 8s默认不支持dbms_random之类的函数，这些函数存在称为datablade的扩展包中，以下示例在库中注册excompat。1，使用gbasedbt用户登陆，切换到 $GBASEDBTDIR/extend/excompat.1.0 目录下 cd $GBASEDBTDIR/extend/excompat.1.02，临时取消当前的DB_LOCALE和CLIENT_LOCALE环境变量 unset DB_LOCALE unset CLIENT_LOCALE3，使用 blademgr 注册 excompat.1.0，以下是各步骤及说明 blademgr # 进入 blademgr，提示符如： 数据库服务名> 服务名> show databases # 显示可加载模块的库 服务名> list testdb # 假设我们需要在testdb库中注册，先查看该有是否有注册模块 服务名> register excompat.1.0 testdb # 注册模块，要求有二次确认 服务名> quit # 退出注册模块4，使用 dbms_random_random 函数-- 注意：该写法（order by 函数）并不是所有版本都支持 select t.* from systables t order by dbms_random_random(); -- 该写法均支持 select dbms_random_random(), t.* from systables t order by 1;按实际需要修改写法。