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

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 11 - 更改和升级 » 9.0.1 版中的新功能 » 9.0.1 版中的行为更改

 

Adaptive Server Anywhere 的行为更改

不建议使用和停用的功能

此列表包含不再支持或不建议使用的功能以及可能影响现有应用程序的功能。

  • MDSR 加密停用   以前 MDSR 和 AES 高度加密在 Adaptive Server Anywhere 都得到了支持。现在唯一支持的高度加密为 AES 加密。这一更改意味着通过初始化、抽取或卸载实用程序使用加密功能时,-ea 选项不再是必需的选项。此外,还删除了 Create Database 语句和 Create Encrypted File 语句中的 algorithm 参数。

  • 不再支持写文件   此版本中不再支持写文件。

  • 不再支持压缩数据库文件   此版本中不再支持使用压缩数据库文件。

  • 不再支持卸载实用程序 (dbunload) 的 -j 选项   对 Unload 实用程序的增强使得卸载实用程序的 -j 选项不再受到支持。

  • 不建议使用语言选择实用程序 (dblang) 的 -d 选项   不再支持语言选择实用程序的 -d 选项,该选项以前用于更改 Adaptive Server Anywhere 的注册表设置。

其它行为更改

下面是对该软件以前版本的行为更改列表。

  • 添加了 CURRENT_TIMESTAMP 和 CURRENT_USER 特殊值   为了与 Microsoft SQL Server 兼容,添加了 CURRENT_TIMESTAMP(等效于 CURRENT TIMESTAMP)和 CURRENT_USER(等效于 CURRENT USER)特殊值。

    请参见CURRENT TIMESTAMP 特殊值CURRENT USER 特殊值

  • 如果数据库服务器已经在运行,则 db_start_engine 返回 SQLCODE 0   现在,如果数据库服务器已经在运行,db_start_engine 会返回非零值并将 SQLCODE 设置为 0。以前,db_start_engine 也会返回非零值,但会将 SQLCODE 设置为 SQLE_ENGINE_ALREADY_RUNNING。

    请参见db_start_engine 函数

  • 如果数据库服务器已经在运行,db_start_database 返回非零值和 SQLCODE 0   现在,如果数据库已经在运行,db_start_database 会返回非零值并将 SQLCODE 设置为 0。以前,db_start_database 会返回 0(表示失败)并将 SQLCODE 设置为 SQLE_ALIAS_CLASH。

    请参见db_start_database 函数db_start_database 函数

  • 更改了校验实用程序的缺省算法   现在,校验实用程序 (dbvalid) 缺省情况下会使用快速检查(-fx 选项)算法。对于有多个索引且不能将表完全装入服务器高速缓存的大型表,快速检查算法的执行速度要快很多。如果想要使用以前版本的 Adaptive Server Anywhere 中使用的校验算法,可以指定 -fn 选项。

    请参见校验实用程序 (dbvalid)

  • 在 [连接] 窗口中输入多字节字符   为了遵从 Windows 的安全最佳做法,您不能再使用输入法编辑器 (IME) 在 Sybase Central、Interactive SQL 和 Adaptive Server Anywhere 控制台实用程序中使用的 [连接] 窗口的 [口令] 字段内键入日文和其它亚洲语言的多字节字符。

    如果您现有数据库的口令中包含这些字符,可以在 [连接] 窗口和 [ODBC 配置] 窗口 [高级] 选项卡的 [其它连接参数] 字段中键入口令。不过,应注意在 [高级] 选项卡中键入口令时,口令不会隐藏,而是可见的纯文本。建议在升级数据库时更改口令,以使口令中不包含多字节字符。

  • 不能在 DECLARE LOCAL TEMPORARY TABLE 语句中指定所有者名称   在以前版本的软件中,如果在 DECLARE LOCAL TEMPORARY TABLE 中指定了所有者名并且所有者与当前用户不同,则可以创建多个同名的临时表。现在,如果指定所有者名,会发生语法错误。

  • 更改了 min_table_size_for_histogram 选项的缺省设置   min_table_size_for_histogram 选项指定创建的直方图所对应的表的最小大小。缺省值现已更改为 100 行。在以前版本的软件中,缺省值为 1000 行。在使用以前版本的软件创建的数据库中,可以通过 SET OPTION 语句更改此设置。

  • NULL 常量数据类型转换更改   在以前版本中,将 NULL 常量转换为 CHAR、VARCHAR、LONG VARCHAR、BINARY、VARBINARY 或 LONG BINARY 类型时,如果未提供长度,系统会将列的大小初始化为 32767。现在,该大小初始化为 0。

    例如,以前以下查询会返回描述长度为 32767 的一列:

    SELECT CAST( NULL AS CHAR )
    -- This now returns a CHAR(0) column
    SELECT 'abc' 
    UNION ALL 
    SELECT NULL
    -- This now returns a CHAR(3) column
    SELECT '' 
    UNION ALL 
    SELECT NULL
    -- This now returns a CHAR(0) column
    SELECT IF 1=1 THEN 'abc' ELSE NULL ENDIF
    -- This now returns a CHAR(3) column
    

  • UPDATE 语句以及 ORDER BY 子句使用序号值时的错误   包含使用序号值的 ORDER BY 子句的 UPDATE 语句现在返回语法错误。

  • 标识符的限制   标识符中不能再使用双反斜线或双引号。只有作为转义字符时才允许在标识符中使用反斜线。

    请参见标识符

  • EXECUTE IMMEDIATE 语句缺省设置 WITH RESULT SET 子句   指定 WITH RESULT SET ON 子句时,EXECUTE IMMEDIATE 语句可以返回结果集。缺省设置是 WITH RESULT SET OFF。

    请参见EXECUTE IMMEDIATE 语句 [SP]