すべてのプロダクト
Search
ドキュメントセンター

PolarDB:oracle_fdw

最終更新日:Nov 11, 2024

oracle_fdwプラグインは、オープンソースのサードパーティプラグインであり、 PolarDB for PostgreSQL (Compatible with Oracle) の外部データラッパーFDW (外部データラッパー) です。 oracle_fdwプラグインを使用して、外部のOracleデータベースと対話できます。

前提条件

  • oracle_fdwプラグインは、Oracle Instant Clientダイナミック・リンク・ライブラリに依存して、Oracleデータベース・サーバーと対話します。

  • oracle_fdwプラグインで使用できるOracle Instant Clientのバージョンは次のとおりです。

    • 11.2

    • 12.1, 12.2

    • 18.3, 18.5

    • 19.3, 19.6, 19.8, 19.9, 19.10, 19.11, 19.12, 19.14

    • 21

    説明

    使用する前に、Oracle公式ドキュメントのInstant Clientバージョンとデータベース・サーバー・バージョンの互換性マトリックスを参照して、クライアントとサーバーが相互にやり取りできることを確認してください。

使用量

  1. oracle_fdw拡張機能をインストールします。

    CREATE EXTENSION oracle_fdw;
  2. 外部Oracleデータベース・サーバーを作成します。

    Oracleデータベースの接続情報を設定し、 PolarDB for PostgreSQL (Compatible with Oracle) からOracleへのマッピングを作成します。 以下に例を示します。

    CREATE SERVER oradb
    FOREIGN DATA WRAPPER oracle_fdw
    OPTIONS (dbserver '//host:port/dbname');

    外部Oracleデータベース・サーバーを作成するためのパラメーターは次のとおりです。

    パラメーター

    説明

    必須

    dbserver

    Oracleデータベースの接続文字列には、IPアドレス、ポート番号、およびデータベース名が含まれます。

    必須

    isolation_level

    トランザクション分離レベル、デフォルトはSERIALIZABLEです。

    オプションのパラメータタイプは次のとおりです。

    • serializable: serializableです。

    • read_committed: read committed.

    • read_only: 読み取り専用です。

    選択可能

    nchar

    Oracle側で文字変換を有効にするかどうか。

    説明

    変更はパフォーマンスに影響を与える可能性があります。

    選択可能

  3. ユーザーマッピングを作成します。

    PolarDB for PostgreSQL (Compatible with Oracle) のユーザーpguserを、対応するOracleデータベースのユーザーorauserにマッピングします。 Oracleデータベース・ユーザーのユーザー名とパスワードを設定する必要があります。 次に例を示します:

    CREATE USER MAPPING
    FOR pguser SERVER oradb
    OPTIONS (user 'orauser', password 'orapwd');

    ユーザーマッピングを作成するためのパラメーターは次のとおりです。

    Parameters

    説明

    必須

    user

    Oracleデータベース・ユーザーのユーザー名。

    必須

    password

    Oracleデータベース・ユーザーのパスワード。

    必須

    説明

    Oracleユーザーの資格情報を PolarDB for PostgreSQL (Oracleと互換性がある) に格納しない場合は、userを空の文字列に設定し、外部認証を提供します。

  4. 外部テーブルマッピングを作成します。

    PolarDB for PostgreSQL (Compatible with Oracle) に外部テーブルを作成し、Oracleデータベースの既存のテーブルにマップします。 次に例を示します:

    CREATE FOREIGN TABLE oratab (
        id        integer OPTIONS (key 'true') NOT NULL,
        text      character varying(30),
        floating  double precision NOT NULL
    ) SERVER oradb OPTIONS (
        table 'ORATAB',
        schema 'ORAUSER',
        max_long '32767',
        readonly 'false',
        sample_percent, '100',
        prefetch, '200'
    );

    外部テーブルを作成するためのパラメーターは次のとおりです。

    Parameters

    説明

    必須

    table

    Oracleデータベース内のマップされたテーブル名は通常大文字です。

    必須

    dblink

    マップされたテーブルのデータベースリンクは、Oracleシステムカタログのデータベースリンクとまったく同じである必要があります。

    選択可能

    schema

    大文字である必要があるOracleユーザー名は、現在接続されているユーザーに属していないテーブルにアクセスするために使用されます。

    選択可能

    max_long

    OracleテーブルのLONGLONG RAW、およびXMLTYPEタイプの列の最大長を制限します。

    選択可能

    sample_percent

    統計をランダムに選択するためにPostgreSQLが使用するOracleテーブル・データの割合 (デフォルトは100) 。

    選択可能

    プリフェッチ

    外部テーブルをスキャンするときにPostgreSQLとOracleの間で一度に転送されるデータの行数。

    選択可能

    キー

    現在の列が主キー制約に含まれているかどうか。

    選択可能

    strip_zeros

    データを転送するとき、文字列の末尾にあるASCII 0文字を削除するかどうか (Oracleでは合法、PostgreSQLでは違法) 。

    選択可能

    説明
    • 外部テーブルの構造定義は、Oracleデータベース上のマッピングされたテーブルの構造と完全に一致している必要があります。

    • PolarDB for PostgreSQL (Compatible with Oracle) からOracleへのoracle_fdwのデータ型マッピングについては、「type mapping table」をご参照ください。

  5. 使用法。

    外部テーブルは、通常の PolarDB for PostgreSQL (Compatible with Oracle) テーブルを操作してリモートOracleデータベースのテーブルを操作するのと同じ方法で操作できます。

  6. プラグインをアンインストールします。

    DROP EXTENSION oracle_fdw;

型マッピングテーブル

oracle_fdwプラグインでは、 PolarDB for PostgreSQL (Compatible with Oracle) のデータ型マッピングは次のとおりです。

Oracleタイプ

可能なPostgreSQL型

CHAR

char、varchar、text

NCHAR

char、varchar、text

VARCHAR

char、varchar、text

VARCHAR2

char、varchar、text、json

NVARCHAR2

char、varchar、text

CLOB

char、varchar、text、json

LONG

char、varchar、text

RAW

uuid、ビテア

BLOB

bytea

BEILE

bytea (読み取り専用)

LONG RAW

bytea

NUMBER

数値、float4、float8、char、varchar、text

NUMBER(n,m) (m<=0)

numeric、float4、float8、int2、int4、int8、boolean、char、varchar、text

FLOAT

数値、float4、float8、char、varchar、text

BINARY_FLOAT

数値、float4、float8、char、varchar、text

BINARY_DOUBLE

数値、float4、float8、char、varchar、text

DATE

date、timestamp、timestamptz、char、varchar、text

TIMESTAMP

date、timestamp、timestamptz、char、varchar、text

TIMESTAMP WITH TIME ZONE

date、timestamp、timestamptz、char、varchar、text

TIMESTAMP WITH LOCAL TIME ZONE

date、timestamp、timestamptz、char、varchar、text

INTERVAL YEAR TO MONTH

interval、char、varchar、text

INTERVAL DAY TO SECOND

interval、char、varchar、text

XMLTYPE

xml、char、varchar、text

MDSYS.SDO_GEOMETRY

ジオメトリ (PostGIS)

関連参照

oracle_fdwの詳細については、oracle_fdwの公式ドキュメントをご参照ください。