ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →無償トライアル:
無償トライアルへ製品の情報と無償トライアルへ:
Oracle Financials Clouds ODBC ドライバーは、ODBC 接続をサポートする任意のアプリケーションからリアルタイムなOracle Financials Clouds アカウントデータに直接接続できるパワフルなツールです。標準のODBC ドライバーインタフェースを使用して、データベースのようにOracle Financials Clouds データにアクセスし、読み、書き、更新を実行できます。
古川えりか
コンテンツスペシャリスト
ODBC Driver
豊富なPython のエコシステムでデータ連携が簡単に行えます。CData Linux/UNIX ODBC Driver for OracleERP とpyodbc module を使って、簡単にOracle Financials Cloud に連携するPython アプリケーションが構築できます。本記事では、pyodbc のビルトイン関数を使って、Oracle Financials Cloud に接続し、クエリを実行、表示する方法を説明します。
CData ODBC Drivers は、Ubuntu、Debian、RHEL、CentOS、Fedora などの様々なRed Hat ベースおよびDebian ベースのシステムでサポートされています。必要なライブラリとパッケージもいくつかあり、システムによっては、それらがデフォルトでインストールされる場合があります。Linux オペレーティングシステムのサポートされているバージョンと必要なライブラリの詳細については、ヘルプドキュメント(オンラインでインストールおよび検索)の[はじめに]セクションを参照してください。
ドライバーをインストールする前に、システムにドライバーマネジャーがあることを確認してください。この記事では、広くサポートされている無料のオープンソースODBC ドライバーマネジャーであるunixODBC を使用します。
Ubuntu のようなDebian ベースのシステムの場合、APT パッケージマネジャーを使用してunixODBC をインストールできます。
$ sudo apt-get install unixODBC unixODBC-dev
Red Hat Linux に基づくシステムの場合、yum またはdnf を使用して、unixODBC をインストールできます。
$ sudo yum install unixODBC unixODBC-devel
unixODBC ドライバーマネジャーは、odbcinst.ini ファイルからドライバーに関する情報を読み取り、odbc.ini ファイルからデータソースに関する情報を読み取ります。 ターミナルに以下のコマンドを入力すると、システム上の構成ファイルの場所を特定できます。
$ odbcinst -j
コマンドの出力には、ODBC データソースと登録済みのODBC ドライバーの構成ファイルの場所が表示されます。 ユーザーデータソースには、odbc.ini が存在するホームフォルダを持つユーザーアカウントからのみアクセスできます。システムのデータソースには、すべてのユーザーがアクセスできます。 以下は、このコマンドの出力例です。
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/myuser/.odbc.ini
SQLULEN Size.......:8
SQLLEN Size........:8
SQLSETPOSIROW Size.:8
標準パッケージ形式(Debian .deb パッケージ形式または.rpm ファイル形式)でドライバーをダウンロードすることができます。フィルをダウンロードしたら、ターミナルからドライバーをインストールできます。
ドライバーインストーラーは、ドライバーをunixODBC に登録し、システムDSN を作成します。これは、後にODBC 接続をサポートするツールやアプリケーションで使用できます。
Ubuntu のようなDebian ベースのシステムの場合、sudo を付けるか、root として次のコマンドを実行します。
$ dpkg -i /path/to/package.deb
Red Hat システムおよび.rpms をサポートするその他のシステムの場合には、sudo またはroot として以下のコマンドを実行します。
$ rpm -i /path/to/package.rpm
ドライバーがインストールされると、unixODBC ドライバーマネジャーを使用して、登録されたドライバーと定義されたデータソースを一覧表示できます。
$ odbcinst -q -d
CData ODBC Driver for OracleERP
...
$ odbcinst -q -s
CData OracleERP Source
...
CData ODBC Driver for OracleERP をunixODBC で使用するには、ドライバーがUTF-16 を使用するように構成されていることを確認してください。これを行うには、以下のように、インストール場所のlib フォルダ(通常は、/opt/cdata/cdata-odbc-driver-for-oracleerp) にあるドライバーのINI ファイル(cdata.odbc.oracleerp.ini) を編集します。
...
[Driver]
DriverManagerEncoding = UTF-16
ドライバーのインストールにより、システムDSN が事前定義されます。システムデータソースファイル(/etc/odbc.ini)を編集し、必要な接続プロパティを定義することで、DSN を変更できます。さらに、$HOME/.odbc.ini で変更するためにroot アクセスを必要としない、ユーザー固有のDSN を作成できます。
Oracle ERP への認証には、以下を設定する必要があります。
[CData OracleERP Source]
Driver = CData ODBC Driver for OracleERP
Description = My Description
Url = https://abc.oraclecloud.com
User = user
Password = password
これらの構成ファイルの使用に関する具体的な情報については、、ヘルプドキュメントを参照してください。
以下のステップに従ってpyodbc をインストールし、Python オブジェクトを介してOracle Financials Cloud へのアクセスを開始できます。
pip ユーティリティを使用してモジュールをインストールできます。
pip install pyodbc
必ず以下のコードでモジュールをインポートしてください。
import pyodbc
これで、ODBC 接続文字列またはDSN で接続できます。以下は、接続文字列の構文です。
cnxn = pyodbc.connect('DRIVER={CData ODBC Driver for OracleERP};Url=https://abc.oraclecloud.com;User=user;Password=password;')
以下は、DSN の構文です。
cnxn = pyodbc.connect('DSN=CData OracleERP Sys;')
Cursor をインスタンス化し、Cursor クラスのexecute メソッドを使用してSQL ステートメントを実行します。
cursor = cnxn.cursor()
fetchall、fetchone、およびfetchmany を使用し、SELECT ステートメントから返されたRows を取得できます。
import pyodbc
cursor = cnxn.cursor()
cnxn = pyodbc.connect('DSN=CData OracleERP Source;User=MyUser;Password=MyPassword')
cursor.execute("SELECT InvoiceId, Amount FROM Invoices WHERE Supplier = 'CData Software'")
rows = cursor.fetchall()
for row in rows:
print(row.InvoiceId, row.Amount)
パラメータ化されたクエリをシーケンスまたは因数リストで提供できます。
cursor.execute(
"SELECT InvoiceId, Amount
FROM Invoices
WHERE Supplier = ?", 'CData Software',1)
getinfo メソッドを使用してデータソースやドライバーの機能に関する情報などのデータを取得できます。getinfo メソッドは、入力をODBC SQLGetInfo メソッドに渡します。
cnxn.getinfo(pyodbc.SQL_DATA_SOURCE_NAME)
CData ODBC Driver for OracleERP を使用してOracle Financials Cloud に接続できるLinux/UNIX 環境で、Python アプリを構築することができるようになりました。