Comment puis-je générer le script DDL pour mon objet avec avec dbms_metadata.get_ddl code> sans le nom de schéma cuite au-dessus? dbms_metadata.get_ddl code>: P> CREATE TABLE "MYTABLE"
(
"COL1" NUMBER(10,0)
)
3 Réponses :
Utilisez SET_REMAP_PARAM avec l'option Remap_schema:
DBMS_METADATA.SET_REMAP_PARAM(th,'REMAP_SCHEMA','HR',NULL);
Cette réponse n'a pas fonctionné pour moi. La réponse avec Emit_schema a bien fonctionné.
Je suis récemment tombé sur ce qui suit, ce qui vous permet d'obtenir DDL sans le nom du schéma.
Il semble beaucoup plus simple que tout autre moyen que j'ai vu jusqu'à présent, bien que cela ne soit inclus dans aucune documentation Oracle. Je l'ai repéré dans les instructions Connexion au développeur SQL, qui génère DDL sans le nom du schéma. P>
DBMS_METADATA.SET_TRANSFORM_PARAM(dbms_metadata.SESSION_TRANSFORM, 'EMIT_SCHEMA', false);
Belle trouvaille, plus facile / plus simple que ma solution!
Cela a travaillé pour moi mais la réponse acceptée n'a pas. (J'utilise Oracle 19.)
En plus de supprimer le schéma (comme suggéré par David Norris ci-dessus), si vous souhaitez supprimer le stockage et d'autres attributs. Fondamentalement, juste un DDL uni, puis utilisez ci-dessous:
BEGIN DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, 'SQLTERMINATOR', TRUE); DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, 'PRETTY', TRUE); DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, 'SEGMENT_ATTRIBUTES', FALSE); DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, 'STORAGE', FALSE); DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, 'EMIT_SCHEMA', FALSE); END;
Voici un exemple ... MYORACLESUPPORTS.COM/Content/...
L'exemple de lien ne fonctionne plus, voici une version archivée