在不同字符集之间转换字符串。
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= on 和 write_bom=off。可将值更改为 read_bom=off 和 write_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; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |