原典情報: $ORACLE_HOME\com\readme.txt
このドキュメントでは、Oracle COM Automationドキュメントの内容を補足する情報を提供します。 このドキュメントには、Oracle COM Automation Feature for PL/SQLをインストールおよび構成するための手順が記載されています。
Oracle COM Automation Feature for PL/SQLには、次のコンポーネントが含まれます。
Oracle COM Automation Feature for PL/SQL(orawpcomVER.dll)
PL/SQLインストールおよび定義用スクリプト(comwrap.sql)
OracleデータベースおよびMicrosoft Word間のデータ交換ソリューション
OracleデータベースおよびMicrosoft Excel間のデータ交換ソリューション
OracleデータベースおよびMicrosoft PowerPoint 97間のデータ交換ソリューション
OracleデータベースおよびExtended MAPI間の電子メール・ソリューション
次の手順では、Oracle COM Automation Feature for PL/SQLのインストール方法について説明します。
MS-DOSコマンド・プロンプトを開きます。
次のコマンドを使用して、ディレクトリをcomに変更します。
cd ORACLE_BASE\ORACLE_HOME\com
SQL*Plusを使用し、systemとしてデータベースに接続します。
次に例を示します。
sqlplus system/manager
Oracle COM Automation Feature for PL/SQLを使用するデータベース・ユーザーに、「ライブラリの作成」権限を付与します。
grant create library to hr
Oracle COM Automation Feature for PL/SQLを使用するデータベース・ユーザーとしてログインします。
connect hr/hr
Oracleホームのcomディレクトリ(Oracle COM Automation Feature for PL/SQLをインストールした場所)にある、comwrap.sqlスクリプトを実行します。
@comwrap.sql
このスクリプトにより、現行ユーザーのスキーマ内にORDCOMパッケージが作成されます。 このスクリプトを最初に実行する際には、「ORA-04043: オブジェクトXXXXは存在しません。」というメッセージがいくつか表示されます。これらのエラーは無視しても支障ありません。
Oracle COM Automation Feature for PL/SQLは外部プロシージャ・コールアウトに依存するため、この機能を使用するには、リスナーとOracle Net Services RPCメカニズムを適切に構成することが不可欠です。
「ORA-28575: 外部プロシージャ・エージェントへのRPC接続をオープンできません。」というエラーが返された場合は、次のいずれかの可能性があります。
リスナーが起動していない。
管理者は、サービス・コントロール・パネルまたはコマンドラインから(例: net start OracleORCLTNSListner)Oracle TNS Listenerサービスを起動できます。
リスナーが適切に構成されていない。
この場合は、管理者がlistener.oraおよびtnsnames.oraファイルを修正する必要があります。
次に示すのは、外部ストアド・プロシージャの起動にプロセス間通信(IPC)が使用されるように、listener.oraおよびtnsnames.oraファイルを構成する方法の例です。 listener.oraおよびtnsnames.oraファイルでの外部プロシージャの構成方法に関する追加情報は、『Oracle COM Automation機能開発者ガイド』または『Oracle Net Services管理者ガイド』を参照してください。
構成ファイルlistener.ora:
LISTENER = (ADDRESS_LIST = (ADDRESS= (PROTOCOL= IPC) (KEY= EXTPROC0) ) ) STARTUP_WAIT_TIME_LISTENER = 0 CONNECT_TIMEOUT_LISTENER = 10 TRACE_LEVEL_LISTENER = OFF SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = ORCL) ) (SID_DESC = (SID_NAME = extproc) (PROGRAM=extproc) ) ) PASSWORDS_LISTENER = (oracle)
構成ファイルtnsnames.ora:
extproc_connection_data.world = (DESCRIPTION = (ADDRESS = (PROTOCOL=IPC) (KEY=EXTPROC0) ) (CONNECT_DATA = (SID=extproc) ) )
Oracle COM Automation Feature for PL/SQLには、Oracle COM Automation Feature for PL/SQLを使用したソリューション作成方法の参考用として、いくつかのソリューションが含まれています。 これらのソリューションは、次の方法で提供されます。
Oracle COM Automation Feature for PL/SQLの使用方法を示すサンプルとして。
Oracle COM Automation Feature for PL/SQLを使用した、特定用途向けのより複雑なアプリケーションを構築するための基礎として。
次の各項では、Microsoft Wordソリューションのインストール方法について説明するとともに、そのソリューションが公開するアプリケーション・プログラミング・インタフェース(API)について説明します。 このソリューションは、OracleデータベースおよびMicrosoft Wordを使用して作成できるソリューション・タイプのサンプルとして提供されています。
Microsoft Wordソリューションは、Microsoft Wordを操作するためのいくつかのAPIを公開するPL/SQLパッケージ(ORDWord)を提供します。 さらに、Microsoft Wordソリューションには、OracleデータベースおよびMicrosoft Word間のデータ交換機能をデモンストレーションするためのスクリプトが含まれています。 WordDem.sqlスクリプトは、OracleデータベースのEMPLOYEES表からMicrosoft Wordドキュメントへのデータ交換を行います。
このスクリプトは、ソリューションのインストール後に実行する必要があります。
このデモは、共通スキーマ内のHRスキーマに依存します。
次の手順では、Microsoft Wordソリューションのインストール方法について説明します。 このソリューションを正常に機能させるには、Microsoft Wordをローカル・マシン上にインストールする必要があります。
MS-DOSコマンド・プロンプトを開きます。
次のコマンドを使用して、ディレクトリをcom\demosに変更します。
次に例を示します。
cd ORACLE_BASE\ORACLE_HOME\com\demos
SQL*Plusを起動し、Microsoft Wordソリューションを使用するデータベース・ユーザーとしてログインします。
次に例を示します。
connect hr/hr
ORACLE_BASE\ORACLE_HOME\com\demosディレクトリにあるWordSol.sqlスクリプトを実行します。
@WordSol.sql
このスクリプトにより、現行ユーザーのスキーマ内にORDWordパッケージが作成されます。
このスクリプトを最初に実行する際には、「ORA-04043: オブジェクトXXXXは存在しません。」というメッセージがいくつか表示されます。 これらのエラーは無視しても支障ありません。
次の手順では、Microsoft Wordソリューションの実行方法について説明します。
MS-DOSコマンド・プロンプトを開きます。
次のコマンドを使用して、ディレクトリをcom\demosに変更します。
次に例を示します。
cd ORACLE_BASE\ORACLE_HOME\com\demos
SQL*Plusを起動します。
sqlplus.exeが現在のパスにない場合は、ORACLE_BASE\ORACLE_HOME\binディレクトリにあります。
Microsoft Wordソリューションを使用するデータベース・ユーザーとしてログインします。
次に例を示します。
connect hr/hr
ORACLE_BASE\ORACLE_HOME\com\demosディレクトリにあるWordDem.sqlスクリプトを実行します。
@WordDem.sql
このスクリプトは、c:\ディレクトリにWordドキュメント(worddemo.doc)を作成します。 このドキュメントには、EMPLOYEES表のデータが含まれます。
worddemo.docファイルを開き、内容を確認します。
次の各項では、Microsoft Excelソリューションのインストール方法について説明するとともに、そのソリューションが公開するアプリケーション・プログラミング・インタフェース(API)について説明します。 このソリューションは、OracleデータベースおよびMicrosoft Excelを使用して作成できるソリューション・タイプのサンプルとして提供されています。
Microsoft Excelソリューションは、Microsoft Excelを操作するためのいくつかのAPIを公開するPL/SQLパッケージ(ORDExcel)を提供します。 さらに、Microsoft Excelソリューションには、OracleデータベースおよびMicrosoft Excel間のデータ交換機能をデモンストレーションするためのスクリプトが含まれています。 ExcelDem.sqlスクリプトは、OracleデータベースのEMPLOYEES表およびJOBS表からMicrosoft Excelワークシートへのデータ交換を行い、そのグラフを作成します。
このスクリプトは、ソリューションのインストール後に実行する必要があります。
このデモは、共通スキーマ内のHRスキーマに依存します。
次の手順では、Microsoft Excelソリューションのインストール方法について説明します。
MS-DOSコマンド・プロンプトを開きます。
次のコマンドを使用して、ディレクトリをcom\demosに変更します。
cd ORACLE_BASE\ORACLE_HOME\com\demos
SQL*Plusを起動します。
sqlplus.exeが現在のパスにない場合は、ORACLE_BASE\ORACLE_HOME\binディレクトリにあります。
Microsoft Excelソリューションを使用するデータベース・ユーザーとしてログインします。
次に例を示します。
connect hr/hr
ORACLE_BASE\ORACLE_HOME\com\demosディレクトリにあるExcelsol.sqlスクリプトを実行します。
@ExcelSol.sql
このスクリプトにより、現行ユーザーのスキーマ内にORDExcelパッケージが作成されます。
このスクリプトを最初に実行する際には、「ORA-04043: オブジェクトXXXXは存在しません。」というメッセージがいくつか表示されます。 これらのエラーは無視しても支障ありません。
次の手順では、Microsoft Excelソリューションの実行方法について説明します。
MS-DOSコマンド・プロンプトを開きます。
次のコマンドを使用して、ディレクトリをcom\demosに変更します。
cd ORACLE_BASE\ORACLE_HOME\com\demos
SQL*Plusを起動します。
sqlplus.exeが現在のパスにない場合は、ORACLE_BASE\ORACLE_HOME\binディレクトリにあります。
Microsoft Excelソリューションを使用するデータベース・ユーザーとしてログインします。
次に例を示します。
connect hr/hr
ORACLE_BASE\ORACLE_HOME\com\demosディレクトリにあるExcelDem.sqlスクリプトを実行します。
@ExcelDem.sql
このスクリプトは、c:\ディレクトリにExcelスプレッドシート(excelxxxxx.xls)を作成します。
このドキュメントには、OracleデータベースのEMPLOYEES表およびJOBS表のデータが含まれます。
excelxxxxx.xlsファイル(xxxxxの箇所はタイムスタンプ)を開き、内容を確認します。
次の各項では、MAPIソリューションのインストール方法について説明するとともに、そのソリューションが公開するアプリケーション・プログラミング・インタフェース(API)について説明します。 このソリューションは、OracleおよびExtended MAPIクライアントを使用して作成できるソリューション・タイプのサンプルとして提供されています。
MAPIソリューションは、Extended MAPIクライアントを操作するためのいくつかのAPIを公開するPL/SQLパッケージ(ORDMAPI)を提供します。 さらに、MAPIソリューションには、OracleおよびExtended MAPIクライアント間のデータ交換機能をデモンストレーションするためのスクリプトが含まれています。 MAPIDem.sqlスクリプトは、OracleデータベースのEMPLOYEES表からExtended MAPI電子メール・メッセージへのデータ交換を行います。
このスクリプトは、ソリューションのインストール後に実行する必要があります。
このデモは、共通スキーマ内のHRスキーマに依存します。
MAPIソリューションは、OracleデータベースのかわりにExtended MAPIクライアントを起動します。
Oracle Database Service on NTは、デフォルトではNTシステム・ユーザーLocalSystemとして実行されます。 ユーザーLocalSystemのMAPIプロファイルは簡単に構成できません。 MAPIソリューションを使用する前に、NTのOracle Database ServiceとOracle TNS Listener Serviceの両方に対し、Windows NTログイン・ユーザー・アカウントを使用して起動するように変更を加える必要があります。
ローカル・ユーザー・アカウントまたはドメイン・ユーザー・アカウントを使用してNTにログオンします。
次に例を示します。
DOMAIN1\userXYZ
MAPIサーバー(たとえば、Microsoft Outlook)を起動し、NTユーザーDOMAIN1\userXYZ用にMAPIプロファイルを構成します。 このプロファイルを使用して電子メールを送信できることを確認してください。
NTの「コントロール パネル」/「サービス」に移動します。
Oracle TNS Listener Serviceを停止します。
Oracle TNS Listener Serviceを選択し、「起動...」をクリックします。
「ログオン」を「このアカウント」に変更し、NTユーザー名としてDOMAIN1\userXYZと入力します。
NTユーザー名DOMAIN1\userXYZのパスワードを入力し、さらに確認入力をします。
Oracle TNS Listener Serviceを再起動します。
Oracle Database Serviceを停止します。
Oracle Database Serviceを選択し、「起動...」をクリックします。
「ログオン」を「このアカウント」に変更し、NTユーザー名としてDOMAIN1\userXYZと入力します。
NTユーザー名DOMAIN1\userXYZのパスワードを入力し、さらに確認入力をします。
Oracle Database Serviceを再起動します。
MAPIのデモをインストールする前に、次の修正を適用する必要があります。
MSDN記事268272の記載に従って、CDO.DLLにパッチを適用します。 パッチを適用したこのDLLは、Microsoft Exchange Server 5.5に含まれるものです。 パッチを適用したDLLを適切な場所に手動でコピーします。 このDLLのデフォルトの場所は次のとおりです。
C:\Program Files\Common Files\System\Mapi\1033\NT
WindowsエクスプローラからMAPI.REGをダブルクリックしてレジストリ設定を更新します。 MAPI.REGは次の場所にあります。
ORACLE_BASE\ORACLE_HOME\com\demos
次の手順では、MAPIソリューションのインストール方法について説明します。
MS-DOSコマンド・プロンプトを開きます。
次のコマンドを使用して、ディレクトリをcom\demosに変更します。
cd ORACLE_BASE\ORACLE_HOME\com\demos
SQL*Plusを起動します。
sqlplus.exeが現在のパスにない場合は、ORACLE_BASE\ORACLE_HOME\binディレクトリにあります。
MAPIソリューションを使用するデータベース・ユーザーとしてログインします。次に例を示します。
connect hr/hr
ORACLE_BASE\ORACLE_HOME\com\demosディレクトリにあるMAPISol.sqlスクリプトを実行します。
@MAPISol.sql
このスクリプトにより、現行ユーザーのスキーマ内にORDMAPIパッケージが作成されます。
このスクリプトを最初に実行する際には、「ORA-04043: オブジェクトXXXXは存在しません。」というメッセージがいくつか表示されます。 これらのエラーは無視しても支障ありません。次の手順では、MAPIソリューションの実行方法について説明します。
MS-DOSコマンド・プロンプトを開きます。
次のコマンドを使用して、ディレクトリをcom\demosに変更します。
cd ORACLE_BASE\ORACLE_HOME\com\demos
テキスト・エディタでMAPIDem.sqlファイルを開き、ORDMapi.AddRecipient内の電子メール・アドレスhr@us.oracle.comを自分の電子メール・アドレスに変更します。
自分のプロファイル名にデフォルト値を使用していない場合は、MS Exchange SettingsのORDMapi.CreateMAPISessionに示されているプロファイル名も変更します。
変更内容を保存します。
SQL*Plusを起動します。
sqlplus.exeが現在のパスにない場合は、ORACLE_BASE\ORACLE_HOME\binディレクトリにあります。
MAPIソリューションを使用するデータベース・ユーザーとしてログインします。次に例を示します。
connect hr/hr
ORACLE_BASE\ORACLE_HOME\com\demosディレクトリにあるMAPIDem.sqlスクリプトを実行します。
@MAPIDem.sql
このスクリプトは、OracleデータベースのEMPLOYEES表から全従業員名を取得し、それらをリストした電子メールを送信します。
MAPIクライアントを開き、送信された電子メールを確認します。
現在のところ、ウィンドウ、メッセージ・ボックスまたはダイアログ・ボックスを表示するOracle COM Automationメソッドはコールできません。
これらのダイアログ・ボックスを表示するメソッドのコールを回避します。
たとえば、Microsoft Excelソリューションでは、同じ名前のファイルが2つ存在することがないよう、ファイル名にタイムスタンプが追加されます(例: excelxxxxx.xls)。 ファイルに他と同じ名前が付けられた場合、COM Automationを使用してそのファイルを保存しようとすると、Excelによって上書き用のダイアログ・ボックスが表示されますが、 Microsoft Wordではこれが行われません。