Skip to main content

Oracle データベースへの ST_Geometry タイプの追加

Standard または Advanced ライセンスで利用可能。

データベース管理者は、空間タイプの作成 ジオプロセシング ツール、または CreateSpatialType ArcPy 関数を呼び出す Python スクリプトを使用して、Oracle データベースに Esri ST_Geometry タイプ、サブタイプ、および関数を追加できます。

データベースに ST_Geometry タイプを追加したら、これを使用して空間データを保存できます。

このツールも関数も、sde という名前のユーザーをデータベースに作成します。 sde ユーザーは ST_Geometry タイプ、サブタイプ、関数、およびテーブルを所有します。

注意:

Microsoft Windows サーバー上に配置された場合、ST_Geometry ライブラリーには Microsoft Visual C++ 再頒布可能パッケージ (x64) が必要となります。 必要となるパッケージ バージョンについては、「Oracle を使用するための ArcGIS の要件」をご参照ください。 このパッケージがサーバー上に存在しない場合は、Microsoft のサイトからダウンロードしてインストールしてください。

空間タイプの作成ジオプロセシング ツールの使用

空間タイプの作成 ジオプロセシング ツールを実行して、ST_Geometry タイプを Oracle データベースにインストールするには、次の手順を実行します:

  1. My Esri から st_shapelib (Windows) または libst_shapelib (Linux) ライブラリーをダウンロードし、Oracle サーバー上の場所に移動します。

    Oracle サーバーのオペレーティング システムに適したライブラリーを使用します。

    ライブラリーを配置したサーバー上のディレクトリーは、空間タイプの作成 (Create Spatial Type) ツールまたはスクリプトを実行するクライアント コンピューターからアクセスできる必要があります。 ライブラリーを UNIX または Linux コンピューターに配置する場合は、データベース管理者にディレクトリーの読み取りアクセス権とライブラリー ファイルの実行権限があることを確認します。

    ダウンロードのオプションがない場合は、ArcGIS 組織の管理者にお問い合わせください。

  2. プロジェクトを ArcGIS Pro で開いて、カタログ ウィンドウを開き、Oracle sys データベース管理者としてデータベースに接続します。

    データベース コネクション (.sde) ファイルがプロジェクト フォルダーに作成されます。

  3. 空間タイプの作成 (Create Spatial Type) ジオプロセシング ツールを開きます。

    検索 ウィンドウを使用してツールを検索したり、データ管理ツールボックスのワークスペース ツールセットからツールを開いたりできます。

  4. ステップ 2 で作成したデータベース接続を 入力データベース コネクション パラメーター テキスト ボックスに追加します。

  5. SDE ユーザー パスワード パラメーター テキスト ボックスに sde データベース ユーザーのパスワードを入力します。

  6. 必要に応じて、表領域名 パラメーター テキスト ボックスに、sde ユーザーのデフォルトの表領域として使用する表領域の名前を入力します。

    空間タイプの作成 ツールにより、Oracle のデフォルトの保管場所に 400 MB の表領域が作成されます。 表領域の配置場所またはサイズを制御するには、Oracle に表領域を作成した後、表領域名 パラメーターに既存の表領域を指定します。 ツールはこの既存の表領域を sde ユーザーのデフォルトとして設定します。

  7. ST_Geometry シェープ ライブラリーのパス パラメーターに、libst_shapelib.so または st_shapelib.dll ファイルを配置した Oracle サーバー上のディレクトリーのパスを、ファイル名も含めて入力します。

    たとえば、libst_shapelib.so ファイルを Linux サーバー boxy の libraries ディレクトリーに配置した場合は、「/boxy/libraries/libst_shapelib.so」と入力します。

  8. 実行 をクリックします。

ST_Geometry タイプ、サブタイプ、および関数が sde ユーザーのスキーマで作成され、シェープ ライブラリーのエントリーが Oracle に作成されます。

ST_Transform 関数を使用して地理座標系変換を実行する場合は、ArcGIS Pro のインストール ディレクトリーから pedata フォルダーを Oracle サーバー上にコピーし、サーバー上の PEDATAHOME 環境変数がその場所を示すように設定する必要があります。

ArcPy 関数の使用

ArcGIS Pro または ArcGIS Server のコンピューターで、CreateDatabaseConnection ArcPy 関数を使用して、Oracle のシステム ユーザーとして Oracle データベースに接続するデータベース コネクション ファイル (.sde) を作成します。 次に、.sde ファイルと CreateSpatialType ArcPy 関数を使用して、データベースに Esri ST_Geometry タイプ、サブタイプ、関数を作成します。

  1. My Esri から st_shapelib (Windows) または libst_shapelib (Linux) ライブラリーをダウンロードし、Oracle サーバー上の場所に移動します。

    必ず、Oracle サーバーのオペレーティング システムに対応するライブラリーを使用してください。

    ライブラリーを配置したサーバー上のディレクトリーは、スクリプトを実行するクライアント コンピューターからアクセスできる必要があります。 ライブラリーを UNIX または Linux コンピューターに配置する場合は、データベース管理者にディレクトリーの読み取りアクセス権とライブラリー ファイルの実行権限があることを確認します。

  2. CreateDatabaseConnection 関数を実行して .sde ファイルを作成します。

    Oracle のシステム ユーザーとして接続し、認証情報を保存する必要があります。

    次の例では、dbadminconnection という接続ファイルが TempFiles というディレクトリーに作成されます。 Oracle インスタンスは oserve で、システム ユーザーの認証情報が提供され、ファイルとともに保存されます。

    import arcpy
    arcpy.management.CreateDatabaseConnection(
       "/user/TempFiles",
       "dbadminconnection.sde",
       "ORACLE",
       "oserve/ORCL",
       "DATABASE_AUTH",
       "sys",
       "D0B3tt3r",
       "SAVE_USERNAME"
    )
    
  3. CreateSpatialType ArcPy 関数を実行して、Oracle データベースに ST_Geometry タイプをインストールします。

    この例では、前のステップの接続ファイルが使用されます。 sde ユーザーに、パスワードと表領域 (それぞれ pw0rd4sde と sdetblsp) が提供されます。 ST_Geometry ライブラリーの場所も指定されます。

    import arcpy
    arcpy.management.CreateSpatialType(
       "suserconnection.sde",
       "pw0rd4sde",
       "sdetblsp",
       "/net/oserve/ora/shape/libst_shapelib.so"
    )
    

ST_Geometry タイプ、サブタイプ、および関数が sde ユーザーのスキーマで作成され、シェープ ライブラリーのエントリーが Oracle に作成されます。

ST_Transform 関数を使用して地理座標系変換を実行する場合は、ArcGIS Pro のインストール ディレクトリーから pedata フォルダーを Oracle サーバー上にコピーし、サーバー上の PEDATAHOME 環境変数がその場所を示すように設定する必要があります。