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 服务器 - SQL 参考 » 使用 SQL » SQL 函数 » SQL 函数 (A-D)

 

DB_EXTENDED_PROPERTY 函数 [System]

返回给定属性的值。允许指定一个可选的特定于属性的字符串参数。

语法
DB_EXTENDED_PROPERTY( 
{ property-id | property-name }
[, property-specific-argument
[, database-id | database-name ] ]
)
参数
  • property-id   要查询的数据库属性 ID。

  • property-name   要查询的数据库属性名称。

    有关数据库属性的完整列表,请参见数据库属性

  • property-specific-argument   以下数据库属性允许指定其它参数,以便返回关于属性的特定信息,如下所述。

    • CharSet 属性   指定标准的名称,以便获得标准的缺省 CHAR 字符集标签。可指定的值为:ASE、IANA、MIME、JAVA、WINDOWS、UTR22、IBM 和 ICU。如果未指定任何标准,将使用 IANA 作为缺省标准,但如果数据库连接是通过 TDS 建立的,则缺省标准将是 ASE。

    • CatalogCollation、Collation 和 NcharCollation 属性   查询这些属性时,可将以下值指定为 property-specific-argument,以便返回特定于归类的信息:

      • AccentSensitive   指定 AccentSensitive,以便获得归类的区分重音设置。例如,以下语句返回 NCHAR 归类的区分重音设置:
        SELECT DB_EXTENDED_PROPERTY( 'NcharCollation', 'AccentSensitive');

        可能的返回值为:Ignore、Respect 和 French。有关这些值的说明,请参见归类定制选项

      • CaseSensitivity   指定 CaseSensitivity,以便获得归类的区分大小写设置。可能的返回值为:Ignore、Respect、UpperFirst 和 LowerFirst。有关这些值的说明,请参见归类定制选项

      • PunctuationSensitivity   指定 PunctuationSensitivity,以便获得归类的区分标点符号设置。可能的返回值为:Ignore、Primary 和 Quaternary。有关这些值的说明,请参见归类定制选项

      • Properties   指定 Properties,以便获得包含为归类指定的所有定制选项的字符串。有关返回的字符串中的关键字和值的说明,请参见归类定制选项

      • Specification   指定 Specification,以便获得包含用于归类的完整归类说明的字符串。有关返回的字符串中的关键字和值的说明,请参见归类定制选项

    • DriveType 属性   指定 dbspace 的名称或文件 ID,以便获得 dbspace 的驱动器类型。返回值是以下值之一:CD、FIXED、RAMDISK、REMOTE、REMOVABLE 或 UNKNOWN。如果未指定任何内容,则返回系统 dbspace 的驱动器类型。如果指定的 dbspace 不存在,则属性函数返回 NULL。如果指定了 dbspace 的名称并且还指定了一个数据库(非当前连接的数据库)的 ID,则该函数也会返回 NULL。

    • File 属性   指定 dbspace 名称,以获得数据库根文件的文件名,包括路径。如果未指定任何内容,则返回系统 dbspace 的信息。如果指定的文件不存在,则函数返回 NULL。

    • FileSize 属性   指定 dbspace 的名称或文件 ID,以便获得指定文件的大小。另外,可以指定 temporary,以便返回临时 dbspace 的大小;还可以指定 translog,以便返回日志文件的大小。如果未指定任何东西,则返回系统 dbspace 的大小。如果指定的文件不存在,则函数返回 NULL。

    • FreePages 属性   指定 dbspace 的名称或文件 ID,以便获得空闲页数。另外,可以指定 temporary,以便返回临时 dbspace 中的空闲页数;还可以指定 translog,以便返回日志文件中的空闲页数。如果未指定任何内容,则返回系统 dbspace 中的空闲页数。如果指定的文件不存在,则函数返回 NULL。

    • IOParallelism 属性   指定 dbspace 名称,以便获得 dbspace 支持的并发 I/O 操作数估计值。如果未指定 dbspace,则使用当前系统的 dbspace。

    • NextScheduleTime 属性   指定事件名称,以便获得事件的下一调度执行时间。

  • database-id   数据库 ID 号,即 DB_ID 函数返回值。通常使用数据库名。

  • database-name   数据库的名称,即 DB_NAME 函数返回值。

返回值

返回 VARCHAR 值。如果省略第三个参数,则使用当前数据库。

注释

DB_EXTENDED_PROPERTY 函数类似于 DB_PROPERTY 函数,不同之处是它允许指定一个可选的 property-specific-argument 字符串参数。对 property-specific-argument 的解释取决于在第一个参数中指定的属性 ID 或属性名。

比较目录字符串(如表名和过程名)时,数据库服务器使用 CHAR 归类。对于 UCA 归类,目录归类与 CHAR 归类相同,仅定制更改为不区分大小写、不区分重音,以及在主级别中排序标点符号等几点例外。对于传统归类,目录归类与 CHAR 归类相同,仅定制更改为不区分大小写例外。虽然不能显式指定用于目录归类的定制,但可以查询 Specification 属性,以便获得数据库服务器比较目录字符串时使用的完整归类说明。如果需要利用 CHAR 归类和目录归类之间的差异,查询 Specification 属性很有用。例如,假定有不区分标点符号的 CHAR 归类并要执行升级脚本,该升级脚本定义名为 my_procedure 的过程,还设法删除名为 myprocedure 的旧版本。使用 CHAR 归类,以下语句不能获得所需结果,因为 my_procedure 等效于 myprocedure:

CREATE PROCEDURE my_procedure( ) ...; 
IF EXISTS ( SELECT * FROM SYS.SYSPROCEDURE WHERE proc_name = 'myprocedure' ) 
THEN DROP PROCEDURE myprocedure 
END IF;

但可以执行以下语句以获得所需结果:

CREATE PROCEDURE my_procedure( ) ...; 
IF EXISTS ( SELECT * FROM SYS.SYSPROCEDURE 
   WHERE COMPARE( proc_name, 'myprocedure', DB_EXTENDED_PROPERTY( 'CatalogCollation', 'Specification' ) ) = 0 ) 
THEN DROP PROCEDURE myprocedure 
END IF;
另请参见
标准和兼容性
  • SQL/2003   服务商扩充。

示例

以下语句返回当前数据库的位置:

SELECT DB_EXTENDED_PROPERTY( 'File' );

以下语句返回以页为单位的系统 dbspace 文件大小。

SELECT DB_EXTENDED_PROPERTY( 'FileSize' );

以下语句返回事务日志的文件大小(以页为单位)。

SELECT DB_EXTENDED_PROPERTY( 'FileSize', 'translog' );

以下语句返回 NCHAR 归类的区分大小写设置:

SELECT DB_EXTENDED_PROPERTY( 'NcharCollation',' CaseSensitivity' );

以下语句返回为数据库 CHAR 归类指定的定制选项:

SELECT DB_EXTENDED_PROPERTY ( 'Collation', 'Properties' );

以下语句返回为数据库 NCHAR 归类指定的完整归类说明:

SELECT DB_EXTENDED_PROPERTY( 'NCharCollation', 'Specification' );