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)

 

CSCONVERT 函数 [String]

在不同字符集之间转换字符串。

语法
CSCONVERT( 
string-expression,
target-charset-string
[, source-charset-string ] [, options ] ])
参数
  • string-expression   字符串。

  • target-charset-string   目标字符集。target-charset-string 可以是以下值之一:

    • os_charset   作为数据库服务器的主机的操作系统所使用的字符集的别名。

    • char_charset   数据库使用的 CHAR 字符集的别名。

    • nchar_charset   数据库使用的 NCHAR 字符集的别名。

    • 任何其它受支持的字符集标签   您可以指定 SQL Anywhere 支持的任何一个字符集标签。

    • source-charset   原始 string-expression 使用的字符集。缺省值为 db_charset(数据库字符集)。source-charset-string 可以是以下值之一:

      • os_charset   操作系统使用的字符集的别名。

      • char_charset   数据库使用的 CHAR 字符集的别名。

      • nchar_charset   数据库使用的 NCHAR 字符集的别名。

      • 任何其它受支持的字符集标签   您可以指定 SQL Anywhere 支持的任何一个字符集标签。

    • options   您可以指定以下各选项之一:

      • 读/写 BOM   缺省情况下,该值设置为 read_bom= onwrite_bom=off。可将值更改为 read_bom=offwrite_bom=on

返回值

LONG BINARY

注释

可以运行以下命令来查看 SQL Anywhere 所支持的字符集列表:

dbinit -le

有关此函数可使用的字符集标签的详细信息,请参见支持的字符集

另请参见
标准和兼容性
  • SQL/2003   服务商扩充。

示例

下面的代码段将 mytext 列从繁体中文字符集转换为简体中文字符集:

SELECT CSCONVERT( mytext, 'cp936', 'cp950' )
FROM mytable;

下面的代码段将 mytext 列的字符集从数据库字符集转换为简体中文字符集:

SELECT CSCONVERT( mytext, 'cp936' )
FROM mytable;

如果文件名存储在数据库中,则它会以数据库的字符集存储。如果服务器要从名称存储在数据库中(例如,存储在外部存储过程中)的文件读取内容或向该文件写入内容,则必须将其文件名显式地转换为操作系统的字符集,然后才能访问该文件。在数据库中存储并由客户端检索的文件名会自动转换为客户端的字符集,因此不需要进行显式转换。

以下代码段将 filename 列中值的字符集从数据库字符集转换为操作系统字符集:

SELECT CSCONVERT( filename, 'os_charset' )
FROM mytable;

某个表中包含一个文件名的列表。一个外部存储过程将此表中的一个文件名用作参数,直接从该文件读取信息。可以在不需要进行字符集转换时使用以下语句:

SELECT MYFUNC( filename )
FROM mytable;

mytable 子句指示带文件名列的表。但是,如果您需要将文件名的字符集转换为操作系统的字符集,则应使用以下语句。

SELECT MYFUNC( csconvert( filename, 'os_charset' ) )
FROM mytable;