Table personnalisée de DDL à partir d'dbms_metadata.get_ddl
Je veux DDL
s de Tables afin que je puisse le mettre vers le serveur de base de données à l'aide de UTL
Package Oracle.
Le problème est : Quand nous
select dbms_metadata.get_ddl('TABLE','Table_name','Schema_Name')
from dual;
- Je obtenir une sortie qui contient CLOB
avant CREATE
. Comme
"(CLOB)
CREATE TABLE "SCHEMA"."TABLE_NAME"
(TABLE_COLUMNS.....) 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 "INTF_DATA01" ;"
Ce que je veux est au-dessus de la DDL
sans CLOB
et sans les paramètres tels que la SEGMENT CREATION
, PCTFREE
... ETC..
Serais heureux de faire votre conseiller.
- Le
(CLOB)
ressemble à quelque chose que votre client pourrait être l'ajout de voir le résultat en est, ainsi, unCLOB
. Le client qui vous aide, et vous pouvez l'exécuter à partir de SQL*Plus ou quelque chose à la place pour voir si elle est toujours montré? - Vous pouvez toujours utiliser substring si il n'y a pas d'autre solution.
Vous devez vous connecter pour publier un commentaire.
Nous pouvons utiliser la DBMS_METADATA.SET_TRANSFORM_PARAM la méthode de contrôle de ce que les clauses sont inclus dans le générés DDL.
Par exemple pour exclure SEGMENT des trucs que vous exécutez cette
avant d'exécuter votre
get_ddl()
appel.La documentation du paquet de listes de toutes les Trandformation paramètres. En savoir plus.
Je pense que Alex a raison, et l' "(CLOB)" à l'avant est quelque chose que votre client est en ajoutant à la sortie. Mais c'était vrai et pas un artefact de se débarrasser de, il pourrait être une simple manipulation de la chaîne:
get_ddl
retourne un CLOB. Il la jeta à un type de caractère et de votre bibliothèque ne pourra pas ajouter l' (CLOB).