Oracle サーバーへの接続(FireDAC)
データベース接続(FireDAC) への移動
このトピックでは、Oracle Server への接続方法を説明します。
目次
サポート対象バージョン
FireDAC ネイティブ ドライバでは、Oracle の Enterprise、Standard(以前の Workgroup)、Express(以前の Personal)サーバー エディションの、バージョン 8.0.3 以降をサポートしています。Delphi アプリケーション用の FireDAC で Oracle を使用する方法の詳細については、「FireDAC での Oracle の使用」を参照してください。
Windows 版クライアント ソフトウェア
FireDAC を使用するには、次の Oracle x86 または x64 クライアント ソフトウェア タイプのいずれか 1 つが、ワークステーションにインストールされている必要があります:
- "ファット" Oracle Client(詳細) -- 標準インストール手順が必要となります。ドライバは、明示的に指定されていなければ、プライマリ Oracle Home にインストールされているクライアントを使用します。
- "シン" Oracle Instant Client(詳細) -- 明示的に指定されていなければ、ドライバでは PATH 内のフォルダまたはアプリケーションの EXE フォルダにコピーされたクライアントを使用します。この後の「Instant Client の使用」を参照してください。
Oracle クライアント ソフトウェアが正常にインストールされていない場合は、接続しようとすると、以下のような例外が発生します:
Instant Client の使用
Instant Client をインストールするには、Oracle Instant x86 または x64 クライアント アーカイブをダウンロードし、解凍します。以下のファイルを使用します。
- oci.dll
- oraocci11.dll
- oraociei11.dll
- orasql11.dll
これらのファイルをアプリケーションの EXE フォルダまたは PATH に含まれるフォルダにコピーします。
TNS 名を使用している場合には、tnsnames.ora ファイルを同じフォルダに置くか、TFDPhysOracleDriverLink.TNSAdmin プロパティの値を tnsnames.ora のフォルダ パスに設定するか、TNSAdmin ドライバ構成パラメータを指定します。
TFDPhysOracleDriverLink.NLSLang を必要な値に設定するか、NLSLang ドライバ構成パラメータを指定します。
Linux 版クライアント ソフトウェア
FireDAC を使用するには、以下が必要です。
- libclntsh.so x64 クライアント ライブラリ
Instant Client for Linux をダウンロードすると含まれています(こちらから)。
Linux にインストールするには、次の記事を参照してください:
- Instant Client Installation - Oracle Instant Client のインストールのための基本手順
- SQL*Plus Instant Client - 詳しい Oracle Instant Client の設定。言語や TNS パラメータの設定も含む。
アプリケーションが、"Cannot load vendor library" 例外を発生させた場合、次を実行する必要があります:
sudo apt-get install libaio1
macOS クライアント ソフトウェア
FireDAC を使用するには、以下が必要です。
- libclntsh.dylib x86 クライアント ライブラリ。
Instant Client for macOS をダウンロードすると含まれています(こちらから)。
Linux にインストールするには、次の記事を参照してください:
- Instant Client Installation - Oracle Instant Client のインストールのための基本手順
- SQL*Plus Instant Client - 詳しい Oracle Instant Client の設定。言語や TNS パラメータの設定も含む。
ドライバのリンク
ドライバをリンクするには、以下のいずれかを行います。
- [ツール パレット]の[FireDAC Links]ページから、TFDPhysOracleDriverLink コンポーネントをドロップします。
- uses 句に FireDAC.Phys.Oracle ユニットを追加します。
接続定義パラメータ
Oracle DBMS に接続するには、ほとんどのアプリケーションで、DriverID、Database、User_Name、Password を指定する必要があります(詳細については「接続の定義(FireDAC)」参照)。
DriverID=Ora
パラメータ | 説明 | 値の例 |
---|---|---|
Database |
値は、次のいずれかです:
|
|
OSAuthent | OS 認証を使用するには Yes を、DBMS 認証を使用するには No を指定します。 | いいえ |
User_Name | Oracle ユーザー名(OSAuthent=No の場合) | Scott |
Password | Oracle ユーザー パスワード(OSAuthent=No の場合) | tiger |
AuthMode |
Oracle 認証モード:
|
通常 |
ReadTimeout | オペレーションを受信または読み込む際の、タイムアウト値をミリ秒で指定。
0 を指定すると、タイムアウトなし、ということになります。
|
|
WriteTimeout | データベース サーバーが、クライアントへの送信オペレーションを完了するまでのタイムアウト値を指定します。
0 を指定すると、タイムアウトなし、ということになります。
|
|
CharacterSet | この接続で使用する文字セット。指定されていない場合、NLS_LANG 変数値が使用されます。 |
|
BooleanFormat |
Boolean 値を表す方式を以下のいずれかとして定義します:
|
選択 |
ApplicationName | アプリケーションの名前。指定されている場合、この値は、V$SESSION 列 MODULE に格納されます。 | AllBooks |
OracleAdvanced | Oracle セッションの追加オプション。詳細については、「ALTER SESSION SET」の章の「Initialization Parameters and ALTER SESSION」の段落を参照してください。値の形式は、<オプション>=<値>[;...] です。 | |
NewPassword | 新しい Oracle ユーザー パスワードを示します。FireDAC は、古いパスワードを使って DB に接続し、その直後にパスワードを新しいものに変更します。 | tiger2 |
MetaDefSchema | アプリケーションのデフォルト スキーマを指定します。スキーマ名が MetaDefSchema と同じ場合、設計時コードではオブジェクト名からスキーマ名が省略されます。 | SCOTT |
使用例
- 定義済み TNS 名(tnsnames.ora に格納されている)を使用して、データベースに接続します:
DriverID=Ora Database=ORA_920_APP User_Name=ADDemo Password=a
- ホスト、ポート、インスタンス名情報を使用して、データベースに接続します:
DriverID=Ora Database=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = OraSrv)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = orcl))) User_Name=ADDemo Password=a
- ローカル データベースに、sysdba として接続します:
DriverID=Ora User_Name=sys AuthMode=sysdba
- データベースに、TNS 名を使用して接続し、パスワードを変更します:
DriverID=Ora Database=ORA_920_APP User_Name=ADDemo Password=a NewPassword=b
- 簡単な接続文字列を使用してデータベースに接続します:
DriverID=Ora Database=OraSrv:1521/orcl User_Name=ADDemo Password=a