Oracle の ST_Geometry と ST_Raster という SQL 関数が使用する共有ライブラリには、Oracle の外部プロシージャ エージェント (extproc) を経由してアクセスします。次に示す操作を実行するには、Oracle から物理ライブラリ ファイルにアクセスできるようにする必要があります。
- SQL クライアントから SQL 関数 ST_Geometry または ST_Raster を実行する。
- GDB_ITEMS_VW および GDB_ITEMRELATIONSHIPS_VW ジオデータベース システム ビュー内の ArcSDE XML 列にアクセスする。
- ST_Geometry 列で SQL 関数を実行するクエリ レイヤーを ArcMap または ArcGIS Pro 内に定義する。
- ArcMap または ArcGIS Pro からデータベース ビュー内のフィーチャを特定する。
- ST_Raster 列を含むテーブルをバージョン対応登録する。
- ArcGIS クライアントを使用して ST_Raster 列を含む行を削除する。
これらのタスクを実行するライブラリを呼び出すように Oracle の外部プロシージャ フレームワークを構成する必要があります。
ほとんどの場合、ST_Raster タイプをインストールすると、SQL を使用して ST_Raster にアクセスできるようになります。この理由から、ST_Raster を処理するための Oracle extproc の構成手順は、ST_Raster のインストールに関するトピックに記載されています。ここでは、ST_Geometry を処理するための Oracle extproc の構成手順に焦点を絞って説明します。
Oracle extproc を構成する前に、次の手順を完了する必要があります。
- Oracle インスタンスから上記の ArcGIS for Server または ArcMap のインストール場所にアクセスできない場合は、ライブラリをダウンロードするか、ArcGIS クライアント コンピューターから Oracle コンピューター上のディレクトリにコピーします。必ず、Oracle のオペレーティング システムに対応する正しいライブラリをコピーしてください。
- [空間タイプの作成 (Create Spatial Type)]、[エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)]、および [エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ジオプロセシング ツールを実行すると、ST_SHAPELIB ライブラリのデフォルト パスが設定されます。sde ユーザーとして SQL クライアントから Oracle インスタンスに接続した後、次の SQL を実行し、ST_SHAPELIB ライブラリに対して現在設定されているパスを確認します。
SELECT file_spec FROM user_libraries WHERE library_name = 'ST_SHAPELIB';
この結果として返されたパスが ST_Geometry ライブラリ ファイルの場所と一致しない場合は、extproc を構成した後でライブラリを再作成する必要があります。
ST_Geometry ライブラリ ファイルの場所を参照するように Oracle extproc.ora を構成します。
- extproc.ora ファイルのバックアップ コピーを Oracle サーバーに作成します。
- extproc.ora ファイルを開き、st_shapelib.dll ライブラリ (Windows) の場所または libst_shapelib.so ライブラリ (Linux または UNIX) の場所を参照するように変更します。
この例では、Oracle の Windows サーバー上に ArcGIS クライアントがインストールされていないため、st_shapelib.dll が Oracle コンピューター上の mylibraries というディレクトリにコピーされています。そのディレクトリにある ST_Geometry ライブラリを指定するように、extrproc.ora に次の行を追加します。
SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll
ST_Geometry ライブラリと ST_Raster ライブラリを両方とも使用する場合は、次のように、両方のエントリを 1 行に配置できます。
SET EXTPROC_DLLS=ONLY:C:\\mylibraries\\st_shapelib.dll;C:\\mylibraries\\libst_raster_ora.dll
Linux または UNIX サーバー上のこの例では、次の行を追加して、ユーザーの esrilibs ディレクトリ内の ST_Geometry ライブラリを指定しています。esrilibs ディレクトリは、ライブラリを格納するために Oracle サーバー上に作成されています。
SET EXTPROC_DLLS=ONLY:/user/esrilibs/libst_shapelib.so
ST_Geometry ライブラリと ST_Raster ライブラリを両方とも使用する場合は、次のように、両方のエントリを 1 行に配置できます。
SET EXTPROC_DLLS=ONLY:/user/esrilibs/libst_shapelib.so:/user/esrilibs/libst_raster_ora.so
- extproc.ora ファイルを保存して閉じます。
- ST_Geometry ライブラリ ファイルの場所をデフォルトの場所から変更した場合や場所が設定されていない場合は、Oracle データベース内に ST_SHAPELIB ライブラリを作成または再作成します。
この例の ST_SHAPELIB ライブラリは、st_shapelib.dll ファイルが配置された Oracle の Windows サーバー上の mylibraries ディレクトリに設定されています。
CREATE or REPLACE LIBRARY ST_SHAPELIB AS 'C:\mylibraries\st_shapelib.dll';
- ライブラリを再作成した場合は、sde.st_geometry_shapelib_pkg パッケージを再コンパイルします。
ALTER PACKAGE sde.st_geometry_shapelib_pkg COMPILE REUSE SETTINGS;
- ライブラリ (Web サービスを含む) にアクセスする必要のあるすべてのクライアントは、データベースに再接続する必要があります。