亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2396 | 回復(fù): 4
打印 上一主題 下一主題

獲取表空間ddl語句 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2004-12-31 18:25 |只看該作者 |倒序?yàn)g覽
-----------------------------------------------------------------------------------
create table
-----------------------------------------------------------------------------------
create table bak_dba_tablesapce
        (ddl_txt varchar2(2000));

-----------------------------------------------------------------------------------
procedure
-----------------------------------------------------------------------------------

create or replace procedure get_tabspace_ddl as
   type r_curdf is ref cursor;
  
v_tpname varchar2(30);

cursor v_curtp  is select * from  dba_tablespaces;   
  v_curdf     r_curdf;
   
  v_ddl   varchar2(2000);
  v_txt   varchar2(2000);
  v_tp    dba_tablespaces%rowtype;
  v_df    dba_data_files%rowtype;
  v_count number;
begin
   
  OPEN V_CURTP;
      
  LOOP
    FETCH  v_curtp INTO v_tp;
    EXIT WHEN v_CURtp%NOTFOUND;
   
    V_TPNAME:=v_TP.tablespace_name;
  
    IF v_tp.CONTENTS='TEMPORARY' THEN        ---臨時(shí)表空間
         --DBMS_OUTPUT.PUT_LINE('CREATE TEMPORARY TABLESPACE '||v_tp.tablespace_name||' DATAFILE ');
         v_txt:='CREATE TEMPORARY TABLESPACE '||v_tp.tablespace_name||' DATAFILE ';
         insert into  bak_dba_tablesapce(ddl_txt) values(v_txt);
        
         SELECT COUNT(*)  INTO v_count    ---獲得游標(biāo)v_curtp指向的當(dāng)前表空間包含的臨時(shí)數(shù)據(jù)文件數(shù)
         FROM   DBA_TEMP_FILES
         WHERE   tablespace_name=v_tp.tablespace_name;
        
    ELSIF v_tp.CONTENTS='UNDO' THEN         ---回退表空間
          -- DBMS_OUTPUT.PUT_LINE('CREATE UNDO TABLESPACE '||v_tp.tablespace_name||' DATAFILE ');
          v_txt:='CREATE UNDO TABLESPACE '||v_tp.tablespace_name||' DATAFILE ';
          insert into  bak_dba_tablesapce(ddl_txt) values(v_txt);
     
          SELECT COUNT(*)  INTO v_count    ---獲得游標(biāo)v_curtp指向的當(dāng)前表空間包含的數(shù)據(jù)文件數(shù)
          FROM   DBA_DATA_FILES
          WHERE   tablespace_name=v_tp.tablespace_name;   
      
    ELSIF v_tp.CONTENTS='PERMANENT' THEN    ---普通表空間
          v_txt:='CREATE TABLESPACE '||v_tp.tablespace_name||' DATAFILE ';
          insert into  bak_dba_tablesapce(ddl_txt) values(v_txt);
        
    END IF;
   
    if  v_tp.CONTENTS='TEMPORARY' THEN        ----臨時(shí)數(shù)據(jù)文件     
        OPEN V_CURDF for select * from  dba_temp_files  where    tablespace_name=v_tpname;
    else
        OPEN V_CURDF  for select * from  dba_data_files  where   tablespace_name=v_tpname;            
    end if;
                    
    LOOP
       FETCH v_curdf INTO v_df;     ---獲取DATAFILE定義
       EXIT WHEN v_CURdf%NOTFOUND;
      
       IF  V_DF.AUTOEXTENSIBLE='YES' THEN
         V_DDL:='ON';
       ELSE
         V_DDL:='OFF';
       END IF;
      
       IF  v_curdf%rowcount=v_count THEN        
           v_txt:=''''||v_df.file_name||''''||' SIZE '||(V_DF.BLOCKS*8/1024)||'M AUTOEXTEND '||V_DDL;
           insert into  bak_dba_tablesapce(ddl_txt) values(v_txt);
        
       ELSE
           v_txt:=''''||v_df.file_name||''''||' SIZE '||(V_DF.BLOCKS*8/1024)||'M AUTOEXTEND '||V_DDL||',';
           insert into  bak_dba_tablesapce(ddl_txt) values(v_txt);
        
       END IF;  
                 
    END LOOP;               
    CLOSE V_CURDF;
        
    IF v_tp.CONTENTS='UNDO' THEN         ---回退表空間存儲參數(shù)        
          insert into  bak_dba_tablesapce(ddl_txt) values(V_TP.STATUS);
      
    ELSE                              ---普通表空間、臨時(shí)表空間存儲參數(shù)        
       IF v_tp.CONTENTS='PERMANENT' THEN    ---普通表空間存儲參數(shù)      
          insert into  bak_dba_tablesapce(ddl_txt) values(V_TP.LOGGING);
          insert into  bak_dba_tablesapce(ddl_txt) values(V_TP.STATUS);      
          insert into  bak_dba_tablesapce(ddl_txt) values('PERMANENT');
       END IF;   
      
       IF v_tp.ALLOCATION_TYPE='UNIFORM' THEN      ----統(tǒng)一分區(qū)尺寸         
          v_txt:='EXTENT MANAGEMENT '||V_TP.EXTENT_MANAGEMENT||' UNIFORM SIZE '||v_tp.INITIAL_EXTENT/(1024*1024)||'M';
          insert into  bak_dba_tablesapce(ddl_txt) values(v_txt);   
                                               
       ELSIF v_tp.ALLOCATION_TYPE='SYSTEM'  THEN   ----系統(tǒng)自動管理分區(qū)尺寸
          v_txt:='EXTENT MANAGEMENT '||V_TP.EXTENT_MANAGEMENT||' AUTOALLOCATE ' ;
          insert into  bak_dba_tablesapce(ddl_txt) values(v_txt);
       END IF;   
      
       IF v_tp.SEGMENT_SPACE_MANAGEMENT='AUTO' THEN  ----系統(tǒng)自動管理段空間
          insert into  bak_dba_tablesapce(ddl_txt) values('SEGMENT SPACE MANAGEMENT AUTO');               
       END IF;            
      
    END IF;
    v_txt:='BLOCKSIZE '||(V_TP.BLOCK_SIZE/1024)||'K ';
    insert into  bak_dba_tablesapce(ddl_txt) values(v_txt);         
    insert into  bak_dba_tablesapce(ddl_txt) values('/');
    insert into  bak_dba_tablesapce(ddl_txt) values('');
    commit;
  END LOOP;
  CLOSE V_CURTP;
      
  EXCEPTION
    WHEN OTHERS THEN
     if v_curtp%isopen then
       close v_curtp;
       if v_curdf%isopen then
         close v_curdf;
       end if;
     end if;   
      RAISE;      
END get_tabspace_ddl;
---------------------------------------------------------------------
get_tabspace_dll.sh
用于crontab 定時(shí)備份數(shù)據(jù)庫表空間的ddl
---------------------------------------------------------------------
#!/bin/ksh
#生成 bill數(shù)據(jù)庫的表空間ddl語句
#每天執(zhí)行
#獲取環(huán)境變量
. /oracle/.profile
username=sys
password=aaa123

########
sqlplus username/password<<EOF
---declare var here
begin
        get_tabspace_ddl;
end;
/
exit
/
EOF
if [ $? -ne 0 ];then
  echo "ERROR! execute procedure failed! please check it"   
  #mail ...
  exit 1
fi
sqlplus username/password <<!  
        set pages 0;
        set serveroutput on size 1000000;
        set heading off;
        set feedback off;
        set echo off;

        spool /ora_backup/orasysbak/bill_tabspace_ddl.sql
                select ddl_txt from bak_dba_tablesapce;  
        spool off;
        exit
!
if [ $? -ne 0 ];then
  echo "ERROR! generate tabspace ddl failed! please check it"   
  #mail ...
  exit 1
fi

希望對大家有用,祝大家新年快樂

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2005-01-02 08:52 |只看該作者

獲取表空間ddl語句

這東西是不是一點(diǎn)用都沒有啊,失望

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2005-01-02 23:34 |只看該作者

獲取表空間ddl語句

存了先,謝謝

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2005-01-03 07:02 |只看該作者

獲取表空間ddl語句

Nice try, but the following code does not the same and does it much better
-----
set long 4000
set pagesize 0
select dbms_metadata.get_ddl('TABLESPACE', TABLESPACE_NAME)
from dba_tablespaces;
-----

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2005-01-03 07:03 |只看該作者

獲取表空間ddl語句

"does not " -->; "does"
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP