Oracle中自动生成ID时需要借助一个序列(Sequence)来完成,但在进行数据迁移时,部分工具不支持导出序列定义(比如 DbVisualizer),本篇经验就分享一下如何通过 SQL 语句导出一个 schema 下的所有序列。
工具/原料
1
Oracle数据库
2
Oracle数据库客户端软件
方法/步骤
1
方法一:查询 dba_sequences 表获取序列信息,命令如下:select * from dba_sequences where sequence_owner = 'schema名称';注意:schema名称需要大写!
2
通过组合 dba_sequences 表中各个字段,构建创建序列的语句,相关 SQL 语句请参考图示。
3
执行上述语句,获取指定 schema 下所有序列的创建语句。将语句导出后,即可完成序列的迁移动作。
4
方法二:直接从 user_objects 表中获取当前schema下所有序列的创建信息,命令格式请参考图示。
5
通过 dbms_lob.substr(...) 函数将上述获取的 clob 格式结果转换为可读字符串,具体命令请参考图示。
注意事项
纸上得来终觉浅,绝知此事要躬行,实践出真知。
上一篇:stata中对数据库的排序等操作
下一篇:SQL语句增删改查