Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 16 - 更改和升级 » 12.0.1 版中的新功能

 

SQL Anywhere 的新功能

以下列出了 SQL Anywhere 12.0.1 版中的新功能。

有关支持平台列表的更改信息,请参见 [external link] http://www.sybase.com/detail?id=1061806

  • 对空间数据支持的增强   以下是对 SQL Anywhere 中的空间数据支持所做的增强:

    • 性能提高   以下空间操作的性能已发生很大的改进:

      • shapefile 的装载时间

      • 装载多边形和多面以及包含属于球形地球空间参照系的多边形的集合

      • 装载复杂多边形和多面(例如,由许多环或包含许多点的环所定义的多边形)

      • 应用于复杂几何的空间集合运算,例如 ST_Union 和 ST_Intersection

      • 空间谓语,例如 ST_Contains 和 ST_Intersects

      • 其中一个几何是点的空间谓语

      • 对球形地球几何索引列应用 ST_WithinDistance 或 ST_Distance 的空间谓语

    • Interactive SQL:[导入向导] 现在支持 shapefile   [导入向导] 现在包括导入 ESRI shapefile 的选项。请参见使用 [导入向导] 导入数据

    • Interactive SQL:INPUT 语句新增了 FORMAT SHAPEFILE 和 SRID 子句   INPUT 语句现在支持使用 FORMAT SHAPEFILE 子句装载 ESRI shapefile。同时 INPUT 语句还增加了 SRID 子句,用于在装载 shapefile 时指定要使用的 SRID。请参见INPUT 语句 [Interactive SQL]

    • 新增 st_geometry_load_shapefile 系统过程   st_geometry_load_shapefile 系统过程允许您通过提供文件名称、装载数据所要使用的 SRID 以及要创建并用于装载数据的表的名称来装载 ESRI shapefile。表的各列将从 shapefile 指定的列名中提取。请参见st_geometry_load_shapefile 系统过程

      注意

      您必须升级数据库才能访问此新增的存储过程。

    • 新增用于指定 ST_CircularString 内插公差的数据库选项   新增 st_geometry_interpolation 选项,用于控制 ST_CircularString 几何的内插值。请参见st_geometry_interpolation 选项

    • 增强了 ST_WithinDistanceFilter   球形地球空间参照系中的几何现在支持空间谓语 ST_WithinDistanceFilter。请参见类型 ST_Geometry 的 ST_WithinDistanceFilter 方法

  • 增强了 java_class_path 选项   现在可使用 java_class_path 数据库选项指定在启动 Java VM 之前系统类装载程序应向类路径中添加的类和 JAR 文件。当应用程序必须提供目录或 JAR 文件时,该选项很有用。请参见java_class_path 选项

  • 新增 MATVIEW ODBC 连接参数   使用 MATVIEW 连接参数,可以指定当 ODBC 函数 SQLTables 运行时为实例化视图的表类型返回的字符串。缺省情况下,SQLTables 函数返回的值为 VIEW。请参见MatView (MATVIEW) 连接参数

  • 新增 -kp 数据库服务器选项   现在可以使用 -kp 选项以标准格式 server-name/hostname@REALM 来指定服务器主体。该 -kp 选项允许对数据库服务器进行 Kerberos 验证连接。请参见-kp 数据库服务器选项

  • PartnerState 属性的增强   现在,PartnerState 属性与 DB_PROPERTY 函数一起使用时会返回以下值之一:

    • connected   存在两个连接:一个是当前服务器到指定服务器的连接,一个是从指定服务器到当前服务器的连接。

    • incoming only   存在一个从指定服务器到此服务器的连接。

    • outgoing only   存在一个从此服务器到指定服务器的连接。

    • disconnected   此服务器和指定服务器之间不存在连接。

    • NULL   数据库无镜像。

    请参见PartnerState 数据库属性

  • MirrorServerState 属性的增强   现在,MirrorServerState 属性与 DB_EXTENDED_PROPERTY 函数一起使用时会返回以下值之一:

    • connected   存在两个连接:一个是当前服务器到指定服务器的连接,一个是从指定服务器到当前服务器的连接。

    • incoming only   存在一个从指定服务器到此服务器的连接。

    • outgoing only   存在一个从此服务器到指定服务器的连接。

    • disconnected   此服务器和指定服务器之间不存在连接。

    • NULL   数据库无镜像。

    请参见MirrorServerState 数据库属性DB_PROPERTY 函数 [System]DB_EXTENDED_PROPERTY 函数 [System]

  • 新增 sp_forward_to_remote_server 过程   可以使用 sp_forward_to_remote_server 存储过程来允许应用程序在远程服务器上执行 SQL 语句并检索此语句生成的结果集。请参见sp_forward_to_remote_server 系统过程

    注意

    您必须升级数据库才能访问此存储过程。

  • 新增 sa_user_defined_counter_add 系统过程   可以使用 sa_user_defined_counter_add 系统过程来更改用户定义属性的值。请参见 sa_user_defined_counter_add 系统过程。请参见sa_user_defined_counter_add 系统过程

    注意

    您必须升级数据库才能访问此存储过程。

  • 新增 sa_user_defined_counter_set 系统过程   可以使用 sa_user_defined_counter_set 系统过程来设置用户定义属性的值。请参见sa_user_defined_counter_set 系统过程

    注意

    您必须升级数据库才能访问此存储过程。

  • SQLANYSAMP12 环境变量   Unix 和 Mac OS X 安装程序现在会在 sa_configsample_config 脚本中设置 SQLANYSAMP12 环境变量。在 Unix 上,sample_config 脚本可用于创建按用户发放的示例副本。这对于多用户安装是很有用的。对于单用户安装,sa_config 脚本会将 SQLANYSAMP12 设置为 $SQLANY12/samples。请参见SQLANYSAMP 16 环境变量发起 sa_config.sh 和 sample_config32.sh/sample_config64.sh [Unix 和 Mac OS X]

  • 远程过程调用中现在允许使用数据类型为 LONG VARCHAR、LONG BINARY 和 LONG NVARCHAR 的 IN 参数   远程过程调用现在可以包含数据类型为 LONG VARCHAR、LONG NVARCHAR 和 LONG BINARY 的 IN 参数。此外,数据类型为 VARCHAR、NVARCHAR 和 BINARY 的参数不再限制为 255 个字节。请参见创建远程过程 (Sybase Central)

  • CREATE SERVER 语句的 USING 子句现在可以包含变量   CREATE SERVER 语句的 USING 子句现在可以包含变量。此功能允许用户创建动态远程数据访问服务器。请参见CREATE SERVER 语句

  • 远程数据访问可直接加载 SQL Anywhere ODBC 驱动程序   您可以定义远程服务器,以便远程数据访问可以跳过 Windows 和 Unix 平台上的 ODBC 驱动程序管理器直接加载 SQL Anywhere 驱动程序。定义远程服务器时,使用下列语法,省略部分为连接字符串的剩余部分:
    CREATE SERVER remote-server CLASS 'SAODBC' USING 'DRIVER=SQL Anywhere Native;...';

    如果未使用 'DRIVER=SQL Anywhere Native' 而定义了多个 SQL Anywhere 远程服务器,则远程数据访问仍对其它远程服务器使用驱动程序管理器。

  • CREATE EXISTING TABLE 语句和 CREATE PROCEDURE 语句中的 AT 子句现在可以包含变量   CREATE EXISTING TABLE 和 CREATE PROCEDURE 语句中的 AT 子句可以包含变量。此功能允许用户将代理表或代理过程映射到多个远程表或过程。请参见CREATE EXISTING TABLE 语句CREATE PROCEDURE 语句

  • 增强了 MERGE 语句中的 RAISERROR 子句和 RAISERROR 语句   通过使用 RAISERROR 语句,SQL Anywhere 数据库服务器允许应用程序引发自定义错误。数据库服务器也提供了内置全局变量 SQLCODE,可检查此变量的值来确定在当前连接上执行最后一条语句时引发的特定错误。数据库服务器现在会报告用户指定的 SQLCODE 错误号,而非固定的 -631 错误消息。请参见MERGE 语句RAISERROR 语句

  • VALIDATE TEXT INDEX 语句   可以使用 VALIDATE TEXT INDEX 语句来验证文本索引中术语的位置信息未受影响。如果位置信息受损,则会产生错误。请参见VALIDATE 语句

  • 扩展了 TOP 和 LIMIT 子句的语法   TOP { ALL | limit } START AT startatLIMIT limit [ OFFSET offset ] 子句现在支持 limitoffsetstartat 参数的简单算术表达式。TOP 支持 ALL 的限制,表示在指定的 startat 值后返回所有行。( limit + offset ) 和 ( limit + startat -1 ) 的最大值已增大到 9223372036854775807 = 2^64-1。

    请参见:

  • SQL Anywhere OLE DB 提供程序现在支持 DBTYPE_DBTIMESTAMPOFFSET 数据类型   SQL Anywhere OLE DB 提供程序现在支持 DBTYPE_DBTIMESTAMPOFFSET 数据类型。DBTYPE_DBTIMESTAMPOFFSET (146) 是支持 TIMESTAMP WITH TIME ZONE(或 DATETIMEOFFSET)数据类型的 OLE DB 类型。对此数据类型的支持有助于在 SQL Anywhere 数据库和其它数据库管理系统(包括 SQL Anywhere)之间传输数据表。

  • Web 服务现在支持对 HTTP 重定向操作的改进控制   CREATE PROCEDURE 和 CREATE FUNCTION 语句新增的 SET REDIR 子句可以控制所允许的最大重定向数并可指定要自动重定向的 HTTP 状态。

    指定 POST HTTP 方法(接收 303 状态)的 Web 服务过程可使用 GET HTTP 方法发出重定向请求。

    HTTP 客户端过程现在可处理相对路径重定向。先前,仅当服务器提供绝对 URL 时,重定向才会成功。

    接收重定向的 GET 方法仅提供由重定向响应的位置标头 URL 所指定的查询组件。接收重定向的 POST 方法发出请求 URL,此 URL 包含由重定向响应位置标头指定的路径和查询组件。其主体包含由过程生成的查询组件。

    现在既可以在 URL 子句中指定查询参数,也可以从传递到过程的参数(自动生成)指定查询参数。这仅适用于指定 GET HTTP 方法的过程。

  • Windows Mobile 上现在支持安全 Web 服务   现在 Windows Mobile 上支持使用 HTTPS 和 HTTPS_FIPS 的 Web 服务过程。

  • SQL Anywhere JDBC 驱动程序现在支持 PreparedStatement.setClob()   SQL Anywhere JDBC 驱动程序现在支持 PreparedStatement.setClob()。

    在以前的版本中,SQL Anywhere JDBC 驱动程序提供对 PreparedStatement.setBlob、ResultSet.getBlob 和 ResultSet.getClob 的支持。现在 SQL Anywhere JDBC 驱动程序提供这三个 PreparedStatement.setClob 方法中的两个。下面列出了这两种方法。

    PreparedStatement.setClob( int parameterIndex, Clob x )
    PreparedStatement.setClob( int parameterIndex, Reader reader, long length )

    SQL Anywhere JDBC 驱动程序不支持以下变体。

    PreparedStatement.setClob( int parameterIndex, Reader reader )

    使用 PreparedStatement.setClob( int parameterIndex, Clob x ) 重载时,用户提供的 Clob 实现仅需支持 Clob.length 和 Clob.getCharacterStream 方法。此外,对于大字符串和大字符流,SQL Anywhere JDBC 驱动程序中新增的 PreparedStatement.setClob 方法在性能和内存使用方面都优于 PreparedStatement.setString 和 PreparedStatement.setCharacterStream 方法。请参见JDBC 支持

  • SQL Anywhere Java VM ClassLoader 现在支持关闭挂接   用于提供数据库中的 Java 支持的 SQL Anywhere Java VM ClassLoader 允许应用程序安装关闭挂接。请参见在 Java VM 中关闭挂接

  • SQL Anywhere .NET SetupVSPackage 安装程序   SetupVSPackage 应用程序现在执行多个安装程序函数,例如,更新全局程序集高速缓存和 Windows Microsoft.NET machine.config 文件。如果系统上已安装 SQL Server 2008 或更高版本,SetupVSPackage 还将两个名为 MSSqlToSA.xmlSAToMSSql10.xml 的映射文件安装到 SQL Server DTS\MappingFiles 文件夹中。请参见.NET 客户端部署