2011-07-21 13 views
7

DBMS_METADATA.GET_DDLでオブジェクトのDDLスクリプトを生成するには、どのようにスキーマ名を焼き込む必要がありますか? DBMS_METADATA.GET_DDLDBMS_METADATA.GET_DDLを使用してスキーマ名を付けずにオブジェクトのDDLスクリプトを生成しますか?

CREATE TABLE "MYSCHEMA"."MYTABLE" 
(
    "COL1" NUMBER(10,0) 
) 

SQL Developerは、それを行うことができ、そして私はまた、この目標とジェネラルDDLスクリプトをachiveするDBMS_METADATAを使用していると思います。 REMAP_SCHEMAオプション付き

CREATE TABLE "MYTABLE" 
(
    "COL1" NUMBER(10,0) 
) 
+1

ここでは一例です呼び出す前に、ちょうど上記のEXEC厄介なハンドルか何かを取得する必要はありません... http://www.myoraclesupports.com/content/how- get-ddl-statement-using-dbmsmetadatagetddl-object-without-object-owner-ddl –

答えて

6

使用SET_REMAP_PARAM:SQL Developerで

DBMS_METADATA.SET_REMAP_PARAM(th,'REMAP_SCHEMA','HR',NULL); 

これはNULLにHRスキーマをマッピングします(あなたがが、ジョブハンドルが必要です)。完全な例については、metadata_api documentation

11

私は最近、スキーマ名なしでddlを取得できるようになりました。

Oracleのマニュアルには含まれていませんが、これまでに見た方法よりもはるかに簡単です。私は、スキーマ名なしでddlを生成するSQL Developerのステートメント・ログでそれを検出しました。

DBMS_METADATA.SET_TRANSFORM_PARAM(dbms_metadata.SESSION_TRANSFORM, 'EMIT_SCHEMA', false); 

あなたはDBMS_METADATA.GET_DDL

関連する問題