Oracle資料庫建立資料表空間

來源:互聯網
上載者:User

標籤:arc   lin   text   style   pip   ble   sel   varchar   size   

--METADATA NAME:dbtk_or_create_tablespace TYPE:EXECDECLARE  default_data_path varchar2(513);  system_file       varchar2(513);  i                 pls_integer;  c                 char(1);  cnt               pls_integer;  data_ts_name      varchar2(30);  data_ts_path      varchar2(513);  data_ts_size      varchar2(30);  index_ts_name     varchar2(30);  index_ts_path     varchar2(513);  index_ts_size     varchar2(30);  lob_ts_name       varchar2(30);  lob_ts_path       varchar2(513);  lob_ts_size       varchar2(30);  bCreateTS         boolean;  vsql              varchar2(4000);BEGIN  execute immediate ‘select file_name from sys.dba_data_files where tablespace_name = ‘‘SYSTEM‘‘‘    into system_file;  i := length(system_file);  while (i > 0) loop    c := substr(system_file, i, 1);    if c = ‘/‘ or c = ‘\‘ then      exit;    end if;    i := i - 1;  end loop;  default_data_path := substr(system_file, 1, i);  dbms_output.put_line(default_data_path);  data_ts_name := ‘${pm.data_tablespace}‘;  if (instr(data_ts_name, ‘${‘) > 0 or length(data_ts_name) = 0) then    select count(*)      into cnt      from user_tablespaces     where tablespace_name = ‘PIPDB_DAT1‘;    if (cnt = 0) then      data_ts_name := ‘PIPDB_DAT1‘;      bCreateTS    := true;    else      bCreateTS := false;    end if;  else    select count(*)      into cnt      from user_tablespaces     where tablespace_name = data_ts_name;    if (cnt = 0) then      bCreateTS := true;    else      bCreateTS := false;    end if;  end if;  if bCreateTS then    data_ts_path := ‘${pm.or.data_path}‘;    if instr(data_ts_path, ‘${‘) > 0 or length(data_ts_path) = 0 or       data_ts_path is null then      data_ts_path := default_data_path || data_ts_name || ‘.DBF‘;    end if;    data_ts_size := ‘${pm.or.data_size}‘;    if instr(data_ts_size, ‘${‘) > 0 or length(data_ts_size) = 0 then      data_ts_size := ‘250M‘;    end if;    vsql := ‘create tablespace ‘ || data_ts_name || ‘ datafile ‘‘‘ ||            data_ts_path || ‘‘‘ size ‘ || data_ts_size ||            ‘ autoextend on next 10M‘;     dbms_output.put_line(vsql);     execute immediate vsql;  end if;  index_ts_name := ‘${pm.index_tablespace}‘;  if (instr(index_ts_name, ‘${‘) > 0 or length(index_ts_name) = 0) then    select count(*)      into cnt      from user_tablespaces     where tablespace_name = ‘PIPDB_NDX1‘;    if (cnt = 0) then      index_ts_name := ‘PIPDB_NDX1‘;      bCreateTS     := true;    else      bCreateTS := false;    end if;  else    select count(*)      into cnt      from user_tablespaces     where tablespace_name = index_ts_name;    if (cnt = 0) then      bCreateTS := true;    else      bCreateTS := false;    end if;  end if;  if bCreateTS then    index_ts_path := ‘${pm.or.index_path}‘;    if instr(index_ts_path, ‘${‘) > 0 or length(index_ts_path) = 0 or       index_ts_path is null then      index_ts_path := default_data_path || index_ts_name || ‘.DBF‘;    end if;    index_ts_size := ‘${pm.or.index_size}‘;    if instr(index_ts_size, ‘${‘) > 0 or length(index_ts_size) = 0 then      index_ts_size := ‘250M‘;    end if;    vsql := ‘create tablespace ‘ || index_ts_name || ‘ datafile ‘‘‘ ||            index_ts_path || ‘‘‘ size ‘ || index_ts_size ||            ‘ autoextend on next 10M‘;     dbms_output.put_line(vsql);     execute immediate vsql;  end if;  lob_ts_name := ‘${pm.lob_tablespace}‘;  if (instr(lob_ts_name, ‘${‘) > 0 or length(lob_ts_name) = 0) then    select count(*)      into cnt      from user_tablespaces     where tablespace_name = ‘PIPDB_LOB1‘;    if (cnt = 0) then      lob_ts_name := ‘PIPDB_LOB1‘;      bCreateTS   := true;    else      bCreateTS := false;    end if;  else    select count(*)      into cnt      from user_tablespaces     where tablespace_name = lob_ts_name;    if (cnt = 0) then      bCreateTS := true;    else      bCreateTS := false;    end if;  end if;  if bCreateTS then    lob_ts_path := ‘${pm.or.lob_path}‘;    if instr(lob_ts_path, ‘${‘) > 0 or length(lob_ts_path) = 0 or       lob_ts_path is null then      lob_ts_path := default_data_path || lob_ts_name || ‘.DBF‘;    end if;    lob_ts_size := ‘${pm.or.lob_size}‘;    if instr(lob_ts_size, ‘${‘) > 0 or length(lob_ts_size) = 0 then      lob_ts_size := ‘250M‘;    end if;    vsql := ‘create tablespace ‘ || lob_ts_name || ‘ datafile ‘‘‘ ||            lob_ts_path || ‘‘‘ size ‘ || lob_ts_size ||            ‘ autoextend on next 10M‘;     dbms_output.put_line(vsql);     execute immediate vsql;  end if;END;--METADATA NAME:dbtk_or_create_tablespace TYPE:EXECDECLARE  default_data_path varchar2(513);  system_file       varchar2(513);  i                 pls_integer;  c                 char(1);  cnt               pls_integer;  data_ts_name      varchar2(30);  data_ts_path      varchar2(513);  data_ts_size      varchar2(30);  index_ts_name     varchar2(30);  index_ts_path     varchar2(513);  index_ts_size     varchar2(30);  lob_ts_name       varchar2(30);  lob_ts_path       varchar2(513);  lob_ts_size       varchar2(30);  bCreateTS         boolean;  vsql              varchar2(4000);BEGIN  execute immediate ‘select file_name from sys.dba_data_files where tablespace_name = ‘‘SYSTEM‘‘‘    into system_file;  i := length(system_file);  while (i > 0) loop    c := substr(system_file, i, 1);    if c = ‘/‘ or c = ‘\‘ then      exit;    end if;    i := i - 1;  end loop;  default_data_path := substr(system_file, 1, i);  dbms_output.put_line(default_data_path);  data_ts_name := ‘${pm.data_tablespace}‘;  if (instr(data_ts_name, ‘${‘) > 0 or length(data_ts_name) = 0) then    select count(*)      into cnt      from user_tablespaces     where tablespace_name = ‘PIPDB_DAT1‘;    if (cnt = 0) then      data_ts_name := ‘PIPDB_DAT1‘;      bCreateTS    := true;    else      bCreateTS := false;    end if;  else    select count(*)      into cnt      from user_tablespaces     where tablespace_name = data_ts_name;    if (cnt = 0) then      bCreateTS := true;    else      bCreateTS := false;    end if;  end if;  if bCreateTS then    data_ts_path := ‘${pm.or.data_path}‘;    if instr(data_ts_path, ‘${‘) > 0 or length(data_ts_path) = 0 or       data_ts_path is null then      data_ts_path := default_data_path || data_ts_name || ‘.DBF‘;    end if;    data_ts_size := ‘${pm.or.data_size}‘;    if instr(data_ts_size, ‘${‘) > 0 or length(data_ts_size) = 0 then      data_ts_size := ‘250M‘;    end if;    vsql := ‘create tablespace ‘ || data_ts_name || ‘ datafile ‘‘‘ ||            data_ts_path || ‘‘‘ size ‘ || data_ts_size ||            ‘ autoextend on next 10M‘;     dbms_output.put_line(vsql);     execute immediate vsql;  end if;  index_ts_name := ‘${pm.index_tablespace}‘;  if (instr(index_ts_name, ‘${‘) > 0 or length(index_ts_name) = 0) then    select count(*)      into cnt      from user_tablespaces     where tablespace_name = ‘PIPDB_NDX1‘;    if (cnt = 0) then      index_ts_name := ‘PIPDB_NDX1‘;      bCreateTS     := true;    else      bCreateTS := false;    end if;  else    select count(*)      into cnt      from user_tablespaces     where tablespace_name = index_ts_name;    if (cnt = 0) then      bCreateTS := true;    else      bCreateTS := false;    end if;  end if;  if bCreateTS then    index_ts_path := ‘${pm.or.index_path}‘;    if instr(index_ts_path, ‘${‘) > 0 or length(index_ts_path) = 0 or       index_ts_path is null then      index_ts_path := default_data_path || index_ts_name || ‘.DBF‘;    end if;    index_ts_size := ‘${pm.or.index_size}‘;    if instr(index_ts_size, ‘${‘) > 0 or length(index_ts_size) = 0 then      index_ts_size := ‘250M‘;    end if;    vsql := ‘create tablespace ‘ || index_ts_name || ‘ datafile ‘‘‘ ||            index_ts_path || ‘‘‘ size ‘ || index_ts_size ||            ‘ autoextend on next 10M‘;     dbms_output.put_line(vsql);     execute immediate vsql;  end if;  lob_ts_name := ‘${pm.lob_tablespace}‘;  if (instr(lob_ts_name, ‘${‘) > 0 or length(lob_ts_name) = 0) then    select count(*)      into cnt      from user_tablespaces     where tablespace_name = ‘PIPDB_LOB1‘;    if (cnt = 0) then      lob_ts_name := ‘PIPDB_LOB1‘;      bCreateTS   := true;    else      bCreateTS := false;    end if;  else    select count(*)      into cnt      from user_tablespaces     where tablespace_name = lob_ts_name;    if (cnt = 0) then      bCreateTS := true;    else      bCreateTS := false;    end if;  end if;  if bCreateTS then    lob_ts_path := ‘${pm.or.lob_path}‘;    if instr(lob_ts_path, ‘${‘) > 0 or length(lob_ts_path) = 0 or       lob_ts_path is null then      lob_ts_path := default_data_path || lob_ts_name || ‘.DBF‘;    end if;    lob_ts_size := ‘${pm.or.lob_size}‘;    if instr(lob_ts_size, ‘${‘) > 0 or length(lob_ts_size) = 0 then      lob_ts_size := ‘250M‘;    end if;    vsql := ‘create tablespace ‘ || lob_ts_name || ‘ datafile ‘‘‘ ||            lob_ts_path || ‘‘‘ size ‘ || lob_ts_size ||            ‘ autoextend on next 10M‘;     dbms_output.put_line(vsql);     execute immediate vsql;  end if;END;

Oracle資料庫建立資料表空間

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.