ST_Raster タイプの実装の違い
データベースごとの ST_Raster の実装に存在する違いは、各データベース管理システム(DBMS)の SQL 構文、データ タイプ、ユーザ定義タイプの実装の違いから生じています。
同じ関数でも、入力およびリターンとして使用されるデータ タイプは、DBMS で使用可能なデータ タイプによって異なります。たとえば ST_Raster_Util.describe 関数は、Oracle では NCLOB、VARCHAR2、NVARCHAR2 を入力として CLOBS を返しますが、PostgreSQL では TEXT を入力として TEXT を返します。
ST_Raster タイプ ライブラリは、Microsoft SQL Server データベースではアセンブリとして実装されます。ST_Raster の関数も、データベースごとに異なる仕組みを使用して実装されます。たとえば、Oracle と SQL Server の場合、ST_Raster の関数はメンバ メソッド レベルで実装されますが、PostgreSQL の場合は、PL/SQL パッケージ レベルで実装されます。
一部の関数名もデータベースごとに異なります。たとえば、ST_Raster タイプの現在のバージョン番号を取得する関数は、Oracle では ST_Raster_Util.getLibraryVersion ですが、PostgreSQL では st_raster_getversionlib です。
SQL Server で ST_Raster の関数を使用するときは、関数名の大文字小文字を区別する必要があります。たとえば、「getPixelType」と正確に入力する必要があり、「getpixeltype」、「GetPixelType」、「GETPIXELTYPE」のように入力してはいけません。