0

2つのOracleデータベースがあるとします。それらをデータベースAおよびデータベースBと呼びます。

ここで、データベースAに次のように定義されたテーブルがあるとします。

CREATE TABLE foo
(
    foo_id INT PRIMARY KEY,
    some_text VARCHAR2(10),
    other_table_id INT

    CONSTRAINT some_fk_constraint
        FOREIGN KEY (other_table_id)
        REFERENCES other_table(other_table_id)
)

...同じ主キーと同じ外部キーを使用してデータベースBに同じテーブルを作成する簡単な方法はありますが、データはありませんか?cx_Oracleを使用してPythonでこれを実行できるように、純粋なSQLメソッドがあれば理想的ですが、必要に応じてシェルスクリプトを起動できます。

4

2 に答える 2

1

DBMS_METADATAは、探しているパッケージのように聞こえます

select dbms_metadata.get_ddl('TABLE','DEPT','SCOTT') from dual;

次に、EXECUTEIMMEDIATEで実行できます。

于 2009-07-28T18:16:52.723 に答える
1
デュアルからdbms_metadata.get_ddl('TABLE'、'FOO'、'SCHEMA_NAME')を選択します。 

これにより、テーブルの作成/再作成に必要なDDLが返されます。注意すべき点の1つは、これによりソースデータベース(この場合はA)で使用されるテーブルスペースが返されるため、それらがデータベースBに存在し、接続したユーザーに適切なクォータがあることを確認する必要があります。

于 2009-07-28T18:18:04.920 に答える