关于Oracle中序列的导入导出,求高手指点

wangmohan44 2011-03-20 07:30:30
大哥大姐们救救火,我将表空间导出后,下次再将表空间导入进去时出现了问题,表空间种的表全有,数据也有,可是我创建的序列没了,我想应该是序列没有导出去,求解决办法。谢谢
...全文
411 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangmohan44 2011-04-03
  • 打赏
  • 举报
回复
可否说清楚额
radia 2011-04-03
  • 打赏
  • 举报
回复
toad 非常不错 一直用它
wangmohan44 2011-04-02
  • 打赏
  • 举报
回复
呵呵,不罗嗦不罗嗦,字字珠玑太感谢了,谢谢大哥大姐们,我去试试。呵呵,
luoyoumou 2011-03-30
  • 打赏
  • 举报
回复
-- 9楼修正一下( 创建序列语句的末尾加个分号(;) ):
spool c:\sequence_code.txt;

declare
v_sequence varchar2(4000);
v_nextval number(38,0);
begin
for i in (select sequence_name from user_sequences) loop
select dbms_metadata.get_ddl('SEQUENCE',i.sequence_name,user) into v_sequence from dual;
execute immediate 'select '||i.sequence_name||'.'||'nextval from dual' into v_nextval;
v_sequence := substr(v_sequence,1,instr(v_sequence,'START WITH',1,1)+length('START WITH'))||' '||to_char(v_nextval)||' '||
substr(v_sequence,instr(v_sequence,'CACHE'))||';';
dbms_output.put_line(v_sequence);
end loop;
end;
/

spool off;
luoyoumou1202 2011-03-30
  • 打赏
  • 举报
回复
-- 执行下面的语句,将在C盘根目录下生成sequence_code.txt文件,
-- 这个文件就是所有当前用户下创建序列的代码:
spool c:\sequence_code.txt;

declare
v_sequence varchar2(4000);
v_nextval number(38,0);
begin
for i in (select sequence_name from user_sequences) loop
select dbms_metadata.get_ddl('SEQUENCE',i.sequence_name,user) into v_sequence from dual;
execute immediate 'select '||i.sequence_name||'.'||'nextval from dual' into v_nextval;
v_sequence := substr(v_sequence,1,instr(v_sequence,'START WITH',1,1)+length('START WITH'))||' '||to_char(v_nextval)||' '||
substr(v_sequence,instr(v_sequence,'CACHE'));
dbms_output.put_line(v_sequence);
end loop;
end;
/

spool off;
luoyoumou 2011-03-30
  • 打赏
  • 举报
回复
-- 啰嗦了半天,也不知道楼主明白了没有?
luoyoumou 2011-03-30
  • 打赏
  • 举报
回复
-- 再根据 user_sequences数据字典,去查看每个序列的下一个值是什么,
-- 然后用其下一下值去更新上面得到的创建序列的语句中的 start with 部分!
luoyoumou 2011-03-30
  • 打赏
  • 举报
回复
-- 得到每个序列的创建语句:
eygle@SZTYORA> create sequence t_seq;

序列已创建。

eygle@SZTYORA> select dbms_metadata.get_ddl('SEQUENCE','T_SEQ') FROM DUAL;

DBMS_METADATA.GET_DDL('SEQUENCE','T_SEQ')
--------------------------------------------------------------------------------

CREATE SEQUENCE "EYGLE"."T_SEQ" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE
20 NOORDER NOCYCLE
wangmohan44 2011-03-30
  • 打赏
  • 举报
回复
TOAD工具这个没用过饿,还有没别的办法啊
coolkisses 2011-03-20
  • 打赏
  • 举报
回复
能否详细说明一下,是怎么导的?
iqlife 2011-03-20
  • 打赏
  • 举报
回复
导出序列可以用TOAD工具导出来
wangmohan44 2011-03-20
  • 打赏
  • 举报
回复
补充一下,导出表空间后,机器重启,以前的表空间都没了以后,数据都没有了以后(但刚才导出的表空间存在),再将表空间导入

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧