服务器 频道

导出oracle数据库对象---同义词,系列,视图

  【IT168 服务器学院】 脚本可分两部分:
  同义词
  1:synonym.cmd:
  sqlplus dxsq/teledoone@jnnew @synonym.sql
  2.synonym.sql:
  create table tmp_user_synonym as select ''create synonym ''||synonym_name||chr(13)||''for''||chr(13)||TABLE_OWNER||''.''||TABLE_NAME||chr(13)||''/'' text from user_synonyms;
  set heading off feedback off termout off
  set pagesize 0
  set linesize 100
  set long 100000
  col tt format a
  spool d:\bat\synonym.log;
  select text tt from tmp_user_synonym;
  spool off;
  drop table tmp_user_synonym;
  exit;
  大家可以以一反三,系列的写法可以参考下面:

  drop table tmp_user_sequence;
  create table tmp_user_sequence (text varchar2(4000));
  declare
  begin
  for tt in (select * from user_sequences) loop
  insert into tmp_user_sequence values(''prompt'');
  insert into tmp_user_sequence values(''prompt create sequence ''||tt.SEQUENCE_NAME);
  insert into tmp_user_sequence values(''prompt'');
  insert into tmp_user_sequence values(''create sequence'' || '' ''|| tt.SEQUENCE_NAME);
  insert into tmp_user_sequence values(''minvalue'' ||'' ''|| tt.MIN_VALUE );
  insert into tmp_user_sequence values(''MAXVALUE'' ||'' ''|| tt.MAX_VALUE);
  insert into tmp_user_sequence values(''start with '' || '' ''||tt.LAST_NUMBER);
  insert into tmp_user_sequence values(''increment by'' ||'' ''|| tt.INCREMENT_BY);
  insert into tmp_user_sequence values(''cache'' ||'' ''|| to_char(tt.CACHE_SIZE));
  if tt.CYCLE_FLAG=''Y'' then
  insert into tmp_user_sequence values(''cycle'');
  end if;
  if tt.ORDER_FLAG=''Y'' then
  insert into tmp_user_sequence values(''order'');
  end if;
  insert into tmp_user_sequence values(''/'');
  insert into tmp_user_sequence values('''');
  end loop;
  commit;
  end;
  /
  set heading off feedback off termout off;
  column text format A100;
  spool d:\bat\user_sequences.log
  select text from tmp_user_sequence;
  spool off;
  exit;

0
相关文章