oracle迁移到openGaussdb少序列问题处理
oracle版本11.0.2,高斯版本6.0.5极简版,借助mtk工具迁移数据库后,序列原库序列数量349个,迁移后只有178个,因为有的序列最大值超过高斯序列最大值9223372036854775807,迁移工具会将此类序列转换为CREATE LARGE SEQUENCE对象,此类对象在DataGrip管理工具中不会呈现,实际数据库内是有此对象的。
通过下面语句获取删除对象脚本,删除大值序列,统一改为正常的序列。
SELECT 'DROP LARGE SEQUENCE public.'||sequence_name||';' 删除语句, sequence_name, min_value, max_value, increment_by, last_number AS curr_value, -- 当前已分配到的值 cache_size, cycle_flag FROM user_sequences where max_value>9223372036854775807 ORDER BY sequence_name; --创建序列 SELECT 'CREATE SEQUENCE public.'||sequence_name||' MINVALUE '||min_value||' MAXVALUE '||(case when max_value>9223372036854775807 then '9223372036854775807' else ''||max_value end)||' INCREMENT BY ' ||increment_by||' START WITH '||last_number||(case when CACHE_SIZE>0 then ' CACHE '||CACHE_SIZE else '' end)|| decode(CYCLE_FLAG,'Y',' CYCLE','') 创建语句, sequence_name, min_value, max_value, increment_by, last_number AS curr_value, -- 当前已分配到的值 cache_size, cycle_flag FROM user_sequences ORDER BY sequence_name;
凡哥,别他妈吹牛逼了

浙公网安备 33010602011771号