次の手順は、Linux上のOracleをPostgreSQLに接続する方法を示しています。 DG4ODBCの詳細については、DG4ODBCチュートリアルを参照してください。
- Linux用の64ビットPostgreSQLODBCドライバーをダウンロードします。
- OracleがインストールされているマシンにPostgreSQLODBCドライバーをインストールしてライセンスを取得します。
インストール手順については、ODBCドライバーのドキュメントを参照してください。
注 マシンにunixODBCDriverManagerがインストールされている必要があります。 Easysoftディストリビューションには、EasysoftPostgreSQLODBCドライバーがテストされたバージョンのunixODBCドライバーマネージャーが含まれています。 Easysoftドライバセットアッププログラムには、unixODBCをインストールするオプションがあります。
- OracleからアクセスするPostgreSQLデータベースに接続するODBCデータソースを/etc/odbc.iniに作成します。例:
[POSTGRES_SAMPLE] Driver=Easysoft ODBC-Postgres Server Description=Easysoft ODBC-Postgres Server Server=192.0.2.1 Port=5432 Database=employees User=postgres Password=p4550rd Logging=No LogFile= Encrypt=No
- isqlを使用して新しいデータソースをテストします。例:
cd /usr/local/easysoft/unixODBC/bin ./isql.sh -v POSTGRESQL_SAMPLE
プロンプトで「help」と入力して、テーブルのリストを表示します。終了するには、空のプロンプト行でReturnキーを押します。
接続できない場合は、この記事を参照してください。
- DG4ODBC初期化ファイルを作成します。これを行うには、
hs/admin
に変更します サブディレクトリ。例:cd $ORACLE_HOME/product/11.2.0/xe/hs/admin
ファイル
initdg4odbc.ora
のコピーを作成します 。新しいファイルにinitpostgresql.ora
という名前を付けます 。 - これらのパラメータと値がinitファイルに存在することを確認してください:
HS_FDS_CONNECT_INFO = my_postgresql_odbc_dsn
my_postgresql_odbc_dsnを置き換えます ターゲットPostgreSQLサーバーに接続するPostgreSQLODBCドライバーデータソースの名前を使用します。例
HS_FDS_CONNECT_INFO = "POSTGRES_SAMPLE"
- DG4ODBCトレースを有効にする行をコメントアウトします。例:
#HS_FDS_TRACE_LEVEL = <trace_level>
-
listener.ora
にエントリを追加します これにより、DG4ODBCのSID_NAMEが作成されます。例:SID_LIST_LISTENER = (SID_LIST = (SID_DESC= (SID_NAME=postgresql) (ORACLE_HOME=$ORACLE_HOME) (PROGRAM=dg4odbc) ) )
- DG4ODBCエントリを
tnsnames.ora
に追加します これは、前の手順で作成したSID_NAMEを指定します。例:POSTGRESQL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle_host)(PORT = 1521)) (CONNECT_DATA = (SID = postgresql) ) (HS = OK) )
oracle_hostを置き換えます Oracleマシンのホスト名を使用します。
- Oracleリスナーを起動(または再起動)します。例:
lsnrctl stop lsnrctl start
- SQL*PlusでOracleデータベースに接続します。
- SQL * Plusで、ターゲットPostgreSQLサーバーのデータベースリンクを作成します。例:
CREATE PUBLIC DATABASE LINK postgresqllink CONNECT TO "my_postgresql_user" IDENTIFIED by "my_postgresql_password" USING 'postgresql'; SELECT * from employees@postgresqllink
メモ
- OracleからPostgreSQLへの接続に問題がある場合は、DG4ODBCトレースを有効にして、
hs/log
に書き込まれたトレースファイルを確認してください。 ディレクトリ。 DG4ODBCトレースを有効にするには、HS_FDS_TRACE_LEVEL = DEBUG
という行を追加します。initpostgresql.ora
へ 次に、Oracleリスナーを起動/再起動します。log
の場合 ディレクトリが存在しない場合は作成してください。例:mkdir log chmod +w log
- エラー「ORA-00997:LONGデータ型の不正使用」が発生した場合は、次のいずれかのエントリをODBCデータソースに追加します。
DisguiseLong=1 # For non-Wide PostgreSQL long columns LimitLong=size in bytes # If this value is too big you will get ORA-00997
–または–
DisguiseWlong=1 LimitLong=size in bytes# If this value is too big you will get ORA-00997
- 「ORA-28562:異種サービスデータ切り捨てエラー」が発生した場合、OracleでPostgreSQLデータを操作するときに回避策がある可能性がありますが、それを使用することの意味を理解する必要があります。詳細については、Easysoftサポートチーム()にお問い合わせください。