3 février 2014

Retrouver les DDL de création d'une table

La chaine RBF permet de générer les DDL de création des tables HR Access en se basant sur la description des objets "Information". Le programme utilise aussi des résultats intermédiaires de génération : les "macros information" des tables GE1*. Ces macros ne sont présentes que sur les environnements de type "Développement" (générables).

Quand il n'est pas possible de créer ces DDL avec la chaîne RBF, le SGBD permet en général de retrouver l'ordre de création (exemple avec la table TP13) :
  • sous Oracle, via SQLPlus :
SET LONG 2000000 PAGESIZE 0 
SELECT dbms_metadata.get_ddl('TABLE','TP13','HR') FROM DUAL;

DBMS_METADATA.GET_DDL('TABLE','TP13','HR')
--------------------------------------------------------------------------------

  CREATE TABLE "HR"."TP13"
   (    "IDPOPL" CHAR(4) NOT NULL ENABLE,
        "TEVERR" CHAR(1) NOT NULL ENABLE,
        "TIPOPL" DATE NOT NULL ENABLE,
         CONSTRAINT "IXTP13" PRIMARY KEY ("IDPOPL")
  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 "HRXT"  ENABLE
   ) 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)
  TABLESPACE "HRTT"


  • sous DB2, via Unix :
db2look -d $DB2DBDFT -e -u $LOGNAME -tw "TP13"

------------------------------------------------
-- DDL Statements for table "HR      "."TP13"
------------------------------------------------

CREATE TABLE "HR      "."TP13"  (
                  "IDPOPL" CHAR(4) NOT NULL ,
                  "TEVERR" CHAR(1) NOT NULL ,
                  "TIPOPL" TIMESTAMP NOT NULL )
                 IN "USERSPACE1" ;

-- DDL Statements for primary key on Table "HR      "."TP13"

ALTER TABLE "HR      "."TP13"
        ADD PRIMARY KEY
                ("IDPOPL");

COMMIT WORK;
CONNECT RESET;
TERMINATE;

Aucun commentaire:

Enregistrer un commentaire