日本語

バグ: ST_RASTER がインストールされている場合、ArcGIS 10.5.1 ジオデータベース/PostgreSQL 9.5 を ArcGIS 10.6/PostgreSQL 9.6 にアップグレード/復元することができない

説明

ST_RASTER SQL タイプは、10.5.1 のリリース後に非推奨になりました。 ただし、ST_RASTER SQL タイプが以前のリリースで PostgreSQL データベースにインストールされていたため、ST_RASTER SQL タイプのアセンブリが PostgreSQL データベースに現在存在しています。PostgreSQL の場合、pg_restore ユーティリティを実行して sde スキーマを復元するときに、次のエラーが発生することがあります。

[アーカイバー (db)] がクエリを実行できませんでした: エラー: 関数 sde.subset(sde.st_raster, text, text) が存在しません

下記の「解決策」のセクションに、ST_RASTER タイプおよびそれをサポートする関数をジオデータベースから削除する方法が示されています。

原因

ST_RASTER タイプは、以前のリリースでデータベースにインストールされていました。 sde スキーマが非推奨の ST_RASTER タイプを含んでいる場合に、このエラーが発生します。

 SQL Server データベースまたは Oracle データベース内の ST_RASTER タイプの存在に起因して発生したエラーの報告は、知られていません。

対処法

  1. ファイル システム レベルのバックアップを実行します。 手順については、PostgreSQL のドキュメントをご参照ください。
    ファイル システム レベルのバックアップ
  2. この ArcGIS Desktop のドキュメントを使用して、ラスター データを ST_RASTER 格納タイプから RASTERBLOB 格納タイプに変換します。
    ST_Raster から RASTERBLOB 格納へのラスター データの変換
  3. ST_RASTER タイプを持つ列を含んでいるすべてのラスター データセットを、データベースから削除します。
  4. 次の SQL ステートメントを使用して、ST_RASTER タイプの列がジオデータベース内に残っていないことを確認します。
select relname from pg_class where oid = (select attrelid from pg_attribute where atttypid = (select oid from pg_type where typname = 'st_raster'))
  1. ジオデータベース管理者としてデータベースに接続し、下記の「関連情報」のセクションの添付ファイルで提供されている SQL ステートメントを実行して、ST_RASTER タイプおよび関数を削除します。
    添付ファイル内のステートメントをファイルにカット アンド ペーストし、PostgreSQL SQL ユーティリティでスクリプトとして実行します。
  2. pg_dump および pg_restore を使用して新しいダンプ ファイルの作成およびその復元を実行し、データベースを完全にバックアップし、エラーなしで復元できることを確認します。

関連情報