Oracle中批量导出Sequence
使用exp工具,以tables的类型导出某个用户下所有的表和数据,发现其中sequence没有被导出。网上搜索之,发现toad貌似有此功能,于是安装了9.6.1.1版本,结果居然没发现此功能。(可能是我没找到,至少和那位老大的截图不同),最后找到如下脚本,可以将某个用户的全部sequence查询出来,并拼成创建语句。
代码如下:
Java代码
select
'create sequence '
||sequence_name||
' minvalue '
||min_value||
' maxvalue '
||max_value||
' start with '
||last_number||
' increment by '
||increment_by||
(
case
when cache_size=
0
then
' nocache'
else
' cache '
||cache_size end) ||
';'
from dba_sequences where sequence_owner=
'HR'
select 'create sequence '||sequence_name||
' minvalue '||min_value||
' maxvalue '||max_value||
' start with '||last_number||
' increment by '||increment_by||
(case when cache_size=0 then ' nocache' else ' cache '||cache_size end) ||';'
from dba_sequences where sequence_owner='HR'
注意:其中的HR,是需要导出sequence的用户,貌似必须大写的说!并且使用该脚本的用户需要有访问dba_sequences的权限。
导出结果如下:
Java代码
create sequence HIBERNATE_SEQUENCE minvalue
1
maxvalue
999999999999999999999999999
start with
1
increment by
1
cache
20
;
create sequence MIAGENTVERSION_VERSION_SEQ minvalue
1
maxvalue
999999999999999999999999
start with
121
increment by
1
cache
20
;&nbs
相关文档:
1. 检查Oracle的进程
$ ps -ef|grep "ora_"|grep -v grep
oracle 5998 1 0 11:15:59 ? 0:01 ora_j000_PPRD10
oracle 2968 1  ......
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String URL=dbmes.url;
Connection con = DriverManager.getConnection(URL,dbmes.usrname,dbmes.pwd);
try{
// 准备语句执行对象
String bh=request.getParameter("dwmc");
Statement stmt = con.createStatement() ......
1.数据库,表,用户等成功导出
①导出整个数据库 & ......
1、查找表的所有索引(包括索引名,类型,构成列):
select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表
2、查找表的主键(包括名称,构成列):
select cu.* from user_cons_columns cu, user_con ......