ST_Raster 类型的实现差异
数据库之间在 ST_Raster 实现中存在的差异由各数据库管理系统 (DBMS) 中的 SQL 语法差异、数据类型差异和用户定义的类型实现差异导致。
用作输入的数据类型以及由同一函数返回的数据类型因 DBMS 中提供的数据类型的不同而有所差别。例如,ST_Raster_Util.describe 函数在 Oracle 中会将 NCLOB、VARCHAR2 和 NVARCHAR2 作为输入,返回的是 CLOB,但是在 PostgreSQL 中,输入和返回的都是 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。
3/7/2012