1

重複の可能性:
Oracleのテーブルに関するすべての情報を取得するにはどうすればよいですか?

既存のテーブルにパーティションを追加する必要があります。本番データベースにアクセスできず、SQLクエリを送信して、既存のパーティションに関する詳細を見つける必要があります。試してみました。

desc <table-name>;

ただし、テーブル構造に関する情報のみが提供されるため、パーティションの詳細とともにテーブル構造が必要です。

データベースはoracle10gです

ありがとう

4

1 に答える 1

2

get_ddlパッケージの機能はdbms_metadataあなたにそのような情報を与えるでしょう:

SQL> create table Tb_Test(
  2    id number primary key
  3  )
  4  partition by range(id)(
  5    partition part1 values less than (100),
  6    partition part2 values less than (300),
  7    partition part3 values less than (maxvalue)
  8  )
  9  ;

Table created 

SQL> select dbms_metadata.get_ddl('TABLE', 'TB_TEST')
  2    from dual
  3  ;

DBMS_METADATA.GET_DDL('TABLE',
--------------------------------------------------------------------------------

  CREATE TABLE "BUDGET2011"."TB_TEST"
   (    "ID" NUMBER,

     PRIMARY KEY ("ID")

  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS"  ENABLE
   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
  STORAGE(
  BUFFER_POOL DEFAULT)
  TABLESPACE "USERS"
  PARTITION BY RANGE ("ID")
 (PARTITION "PART1"  VALUES LESS THAN (100)
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS" NOCOMPRESS ,
 PARTITION "PART2"  VALUES LESS THAN (300)
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS" NOCOMPRESS ,
 PARTITION "PART3"  VALUES LESS THAN (MAXVALUE)
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS" NOCOMPRESS )
于 2012-10-26T13:09:11.143 に答える