sql >> データベース >  >> RDS >> Oracle

バージョン管理のためのdbオブジェクトのエクスポート

    パラメータを渡します ちゃんと。その後、カスタマイズできます 出力。

    DBMS_METADATA.GET_DDL (object_type, object_name, object_owner)
    

    たとえば、 METADATAを取得するには ユーザーのすべてのテーブルSCOTT

    SQL> conn scott/[email protected];
    Connected.
    SQL> set long 200000
    SQL> select dbms_metadata.get_ddl('TABLE',t.table_name, 'SCOTT') from US
    
    DBMS_METADATA.GET_DDL('TABLE',T.TABLE_NAME,'SCOTT')
    ------------------------------------------------------------------------
    
      CREATE TABLE "SCOTT"."DEPT"
       (    "DEPTNO" NUMBER(2,0),
            "DNAME" VARCHAR2(14),
            "LOC" VARCHAR2(13),
             CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO")
      USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
      BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "USERS"  ENABLE
       ) SEGMENT CREATION IMMEDIATE
      PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
     NOCOMPRESS LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
      BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "USERS"
    
    
      CREATE TABLE "SCOTT"."EMP"
       (    "EMPNO" NUMBER(4,0),
            "ENAME" VARCHAR2(10),
            "JOB" VARCHAR2(9),
            "MGR" NUMBER(4,0),
            "HIREDATE" DATE,
            "SAL" NUMBER(7,2),
            "COMM" NUMBER(7,2),
            "DEPTNO" NUMBER(2,0),
             CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO")
      USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
      BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "USERS"  ENABLE,
             CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO")
              REFERENCES "SCOTT"."DEPT" ("DEPTNO") ENABLE
       ) SEGMENT CREATION IMMEDIATE
      PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
     NOCOMPRESS LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
      BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "USERS"
    
    
      CREATE TABLE "SCOTT"."BONUS"
       (    "ENAME" VARCHAR2(10),
            "JOB" VARCHAR2(9),
            "SAL" NUMBER,
            "COMM" NUMBER
       ) SEGMENT CREATION DEFERRED
      PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
     NOCOMPRESS LOGGING
      TABLESPACE "USERS"
    
    
      CREATE TABLE "SCOTT"."SALGRADE"
       (    "GRADE" NUMBER,
            "LOSAL" NUMBER,
            "HISAL" NUMBER
       ) SEGMENT CREATION IMMEDIATE
      PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
     NOCOMPRESS LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
      BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "USERS"
    

    だから、これは私に DDLを与えます SCOTTのすべてのテーブル スキーマ。

    同様に、INDEXESのような他のすべてのオブジェクトに対しても同じことができます。 、ROLES など

    テキストファイルでDDLを取得するには、 SPOOLを使用するだけです。 。したがって、それぞれのテキストファイルにスプールするには、さまざまなオブジェクトタイプの個別のスクリプトが必要です。



    1. MariaDB JSON_TABLE()の説明

    2. インデックスに関するMySQL正規表現

    3. JSONからmySQLテーブルを動的に作成できますか?

    4. 発音区別符号の鈍感なmysql検索?