sql >> データベース >  >> RDS >> Oracle

あるデータベース/テーブルから別のデータベース/テーブルにデータをコピーする方法

    一般的なOracle環境では、TNS名が設定されています。これは、SIDまたはサービス名を指定してOracleインスタンスの接続パラメータを検索するサービスです。最も単純な形式では、TNS名はtnsnames.oraというファイルです。 環境変数TNS_ADMINによって配置されます (ファイルがあるディレクトリを指します。)

    与えられたSIDPROD およびSANDBOX 、SQLPLUSコマンドラインユーティリティからテーブルをコピーできます:

    COPY FROM username1/[email protected] to username2/[email protected]
        INSERT TABLE_C (*) USING (SELECT * FROM TABLE_C WHERE COL_A = 4884);
    

    このCOPYコマンドは、char、date、long、varchar2、numberなどの限られたOracleデータ型のセットのみをサポートすることに注意してください。

    TNS名を設定していない場合は、ホスト名またはIPアドレス、ポート番号、およびサービス名を知っている必要があります。構文は次のようになります。

    COPY FROM username1/[email protected]//192.168.3.17:1521/PROD_SERVICE to username2/[email protected]//192.168.4.17:1521/SANDBOX_SERVICE
        INSERT TABLE_C (*) USING (SELECT * FROM TABLE_C WHERE COL_A = 4884);
    

    SIDやサービス名を確認するには、データベースサーバー自体のTNSNAMES.ORAファイルを調べるのが最善です。データベースにログインできる場合は、次のクエリを使用してSIDとサービス名を確認できます(ただし、どちらかは聞かないでください)。

    select name from v$database;
    
    select * from global_name;
    
    select instance_number, instance_name, host_name from v$instance;
    


    1. []Gormとpostgresを使用したjsonbへの文字列

    2. PL / SQLトリガーは、1つの表のINSERTから別の表を更新します

    3. mysqlテーブルに月が存在しない場合でも、各月を選択します

    4. PostgresqlとOracle:共通のサブクエリから複数のテーブルを更新する