远程Sybase数据库技术支持,联系手机:13811580958,QQ:289965371!

 

随着Sybase被完全整合到SAP下,Sybase原来的支持网站被SAP Support Portal取代。
只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。
目前,原Sybase所有产品(包括:Adaptive Server Enterprise、Sybase IQ、Replication Server、PowerDesigner等)的官方手册仍然可以从http://infocenter.sybase.com/help/index.jsp进行浏览或下载。暂不清楚该网站http://infocenter.sybase.com/help/index.jsp何时会被完全迁移到SAP Support上!
Sybase官方手册英文版有html和pdf两种格式,而中文版手册只有pdf一种格式。为了国内Sybase用户更方便、快捷地搜索Sybase常见产品的官方手册内容,特将中文版Sybase官方手册转为html格式!
Sybase产品官方手册中文版的html格式所有内容的版权归SAP公司所有!本博客站长是Sybase数据库的铁杆粉丝!

如有Sybase数据库技术问题需要咨询,请联系我!

  QQ :289965371 点击这里给我发消息
  Email:

以下官方手册为ASE 15.7 ESD#2中文版:

  1. 新增功能公告 适用于 Windows、Linux 和 UNIX 的 Open Server 15.7 和 SDK 15.7
  2. 新增功能摘要
  3. 新增功能指南
  4. ASE 15.7 发行公告
  5. 配置指南(windows)
  6. 安装指南(windows)
  7. 参考手册:构件块
  8. 参考手册:命令
  9. 参考手册:过程
  10. 参考手册:表
  11. Transact-SQL® 用户指南
  12. 系统管理指南,卷 1
  13. 系统管理指南,卷 2
  14. 性能和调优系列:基础知识
  15. 性能和调优系列:锁定和并发控制
  16. 性能和调优系列:监控表
  17. 性能和调优系列:物理数据库调优
  18. 性能和调优系列:查询处理和抽象计划
  19. 性能和调优系列:使用 sp_sysmon 监控 Adaptive Server
  20. 性能和调优系列:利用统计分析改进性能
  21. 程序员参考 jConnect for JDBC 7.0.7
  22. Adaptive Server Enterprise 中的 Java
  23. 组件集成服务用户指南
  24. Ribo 用户指南
  25. 内存数据库用户指南
  26. Sybase Control Center for Adaptive Server® Enterprise
  27. 安全性管理指南
  28. 实用程序指南

 


< 上一个 | 内容 | 下一步 >

选择排序顺序


不同语言对同样字符的排序是不同的。例如,在英语中,Cho 排在 Co 之前,而在西班牙语中则相反。在德语中,是个单字符,而字典中将 其视为双字符 ss 并相应地进行排序。变音字符按特定顺序排序,因此, aménité 排在 amène 之前,而如果忽略变音,排序顺序则相反。因此,需要 使用语言特定的排序顺序,以便正确地对字符进行排序。


每种字符集都有一种或多种排序顺序,Adaptive Server 使用它们来收集 数据。排序顺序与特定语言或语言组及特定的字符集联系密切。由于英 语、法语和德语以同样的方式对相同的字符进行排序,因此,它们可以 使用同样的排序顺序,例如,AaBb,等等。或者,字符是特定 于其中一种语言的 — 例如,法语中使用变音字符 é à á ,但英语 或德语中不使用这些字符 — 因此,这些字符的排序方式没有冲突。然 而,对于西班牙语却不是这样,在西班牙语中,双字母 ch ll 的排序 是不同的。因此,虽然相同的字符集支持所有四种语言,但英语、法语 和德语有一组排序顺序,而西班牙语有一组不同的排序顺序。

另外,排序顺序与特定字符集密切相关。因此,在 ISO 8859-1 字符集中 有一组英语、法语和德语的排序顺序,在 CP 850 字符集中有另外的一 组,等等。特定字符集的可用排序顺序位于字符集目录的排序顺序定义 文件(*.srt 文件)中。有关字符集及其可用排序顺序的列表,请参见

310 页的表 10-5


使用排序顺序


排序顺序用于:

创建索引

将数据存入按索引排序的表

指定 order by 子句


不同类型的排序顺序

为所有字符集都至少提供了一个二进制排序顺序,这种排序顺序对数据 进行摸索式的排序,即排序仅基于字符集中分配给代表每个字符的代码

(“二进制”代码)的算术值。二进制排序顺序适用于每个字符集的前 128 个字符(ASCII 英语)和亚洲语言。如果字符集支持多种语言(例 如,组 1 Unicode),二进制排序顺序很可能会得出不正确的结果, 并且您应选择其它排序顺序。

字符集也可以使用以下一种或多种字典排序顺序:

字典顺序,区分大小写,区分变音 分别对大写和小写字母进行排 序。字典排序顺序识别字母的各种变音形式,并将它们排在相关联 的非变音字母之后。


字典顺序,不区分大小写,区分变音 按字典顺序对数据排序,但 不区分大小写。大写字母与相应的小写字母等同,在排序结果中大 小写字母混合在一起。对于避免名称表中的重复条目是很有用的。

字典顺序,不区分大小写,区分变音,按优先级排序 在决定条 目是否相同时不区分大小写。同一单词的大小写形式是同等的。在 所有其它条件相同时,大写字母具有高的优先级(它们先出现)。

order by 子句中指定的列与表的聚簇索引的键相匹配时,使用这种 具有优先级的不区分大小写的排序顺序可能导致大表的性能降低。 不要选择具有优先级的不区分大小写的排序顺序,除非安装的版本 要求在 order by 子句的其它同等字符串中,大写字母排在小写字母 之前。

字典顺序,不区分大小写,不区分变音 将变音形式的字母与不加 变音的相关字母视为相同。它在排序结果中混合了变音字符。


选择缺省排序顺序


Sybase 服务器每次只能支持一种缺省排序顺序。如果用户使用同一语言 或他们的语言使用同样的排序顺序,那么就选择所需要的排序顺序。例 如,如果用户使用法语,并希望使用法语排序,那么就可选用一种法语 字典排序顺序。或者,如果用户使用多语言的数据,并且这些语言使用 同样的排序顺序,例如,英语、法语和德语,那么就可选用一种排序顺 序,它可用于所有使用各种语言的用户。

然而,如果用户使用不同语言(需要不同的排序顺序),例如,法语和 西班牙语,那么,必须在排序顺序中选择一种作为缺省排序顺序。如果 选用了法语排序顺序,那么,对于使用西班牙语的用户,ch ll 这样的 双字母的排序就不会象他们所期望的那样。在缺省状态下,安装过程用 二进制排序顺序配置服务器。

可使用 sortkey 函数为数据设置自定义的替代排序顺序(每种语言设置 一种排序顺序)。可动态选择这些排序顺序来满足不同用户的需求。 sortkey 函数是从缺省排序顺序中分离出来的,但它们可共存于同一服务 器中。sortkey 函数所提供的排序顺序比缺省排序顺序机制所提供的排 序顺序在广度和深度上要好。有关详细信息,请参见《参考手册:构件 块》中的 sortkey compare


10-5:可用的排序顺序

image

语言或脚本 字符集 排序顺序

image

image

所有语言 UTF-8 多种排序顺序,请参见 10-7 以获取列表

古斯拉夫语: 保加 利亚语、白俄罗斯 语、马其顿语、俄 语、塞尔维亚语、 乌克兰语

image

东欧: 捷克语、斯 洛伐克语

CP 855CP 866CP 1251ISO

8859-5Koi8Macintosh Cyrillic


CP 852ISO 8859-2CP 1250

字典顺序,区分大小写,区分变音


image

字典顺序,区分大小写,区分变音 字典顺序,不区分大小写,区分变音 字典顺序,区分大小写,区分变音,具有优先级 字典顺序,不区分大小写,不区分变音

英语、法语、德语 ASCII 8CP 437CP850CP

860CP 863CP 1252aISO

8859-1ISO 8859-15Macintosh RomanROMAN8ROMAN9ISO 15

字典顺序,区分大小写,区分变音 字典顺序,不区分大小写,区分变音 字典顺序,区分大小写,区分变音,具有优先级 字典顺序,不区分大小写,不区分变音

image

英语、法语、德语 CP 850CP 858 替代字典顺序,区分大小写 替代字典顺序,区分大小写,不区分变音 替代字典顺序,区分大小写,具有优先级

image

希腊语 ISO 8859-7 字典顺序,区分大小写,区分变音

image

匈牙利语 ISO 8859-2 字典顺序,区分大小写,区分变音 字典顺序,不区分大小写,区分变音 字典顺序,不区分大小写,不区分变音

image

日语 EUCJISSJISDECKANJI 不区分大小写的通用字典顺序

image

image

哈萨克语 87 50

俄语 CP 866CP 1251ISO 8859-5

Koi8Macintosh Cyrillic

image

字典顺序,区分大小写,区分变音 字典顺序,不区分大小写,区分变音

斯堪的纳维亚语 CP 850 字典顺序,区分大小写,区分变音 字典顺序,不区分大小写,具有优先级

image

image

简体中文 EUC-GBGB-18030CP936 不区分大小写的通用字典顺序

西班牙语 ASCII 8CP 437CP850CP 860CP 863CP 1252ISO

8859-1ISO 8859-15

Macintosh RomanROMAN8

字典顺序,区分大小写,区分变音 字典顺序,不区分大小写,区分变音 字典顺序,不区分大小写,不区分变音

image

泰语 CP 874TIS 620 字典顺序

image

土耳其语 ISO 8859-9 字典顺序,区分大小写,区分变音 字典顺序,不区分大小写,不区分变音 字典顺序,不区分大小写,区分变音

image


语言或脚本

字符集

排序顺序

西欧语言

CP 1252

字典顺序,不区分大小写,区分变音,具有优 先级,不区分变音,西班牙语字典,不区分大 小写的西班牙语,不区分变音的西班牙语


对于在此未列出的语言,没有该语言的特定语言排序顺序。选择二进制 排序顺序,然后研究 sortkey 函数是否满足要求。如此表所示,许多语言 有多种排序顺序。


中文拼音排序顺序


拼音(更正式的名称为“汉语拼音”)使用罗马字母来表示标准中文发 音系统。拼音包含一个转写为罗马字母的转写系统,用于不使用中文字 符阅读和书写普通话。拼音使用变音来表示普通话的四个音调。

Adaptive Server 的早期版本使用简体中文 (GB) 排序顺序(gbpinyin gbpinyinocs),同时使用 Unilib 字符集,从而会对使用 GB 字符集的数 据库的性能产生很大影响。

Adaptive Server 15.0.3 版自动使用 gbpinyin gbpinyinocs 排序顺序,从而 避免了处理步骤,并显著改善了性能。

在早期版本中,缺省 size of unilib cache 配置参数为 268 KB。在 15.0.3 版 中,缺省值已增加到 302 KB

在访问 ASCII gbpinyin 数据的查询中,性能得到了改善。但是,如果 数据集混用了其它字符,您可能看不到任何性能改善。

有关配置 Adaptive Server 以使用 gbpinyin gbpinyinocs 排序顺序的信 息,请参见《系统管理指南》中的第 9 章“配置字符集、排序顺序和 语言”。


选择用于中文和日文字符集的不区分大小写的排序顺序

使用两个存储过程来选择不区分大小写的排序顺序:

sp_helpsort

sp_configure

sp_helpsort sp_helpsort 列出了不区分大小写的可用排序顺序。

sp_helpsort

-----------

Name ID

-------------------------

nocase_eucgb 52

nocase_cp936 52

nocase_gb18030 52

nocase_eucjis 52

nocase_sjis 52

nocase_deckanji 52


sp_configure 若要切换到不区分大小写的排序顺序,请输入:

sp_configure 'default sortorder id', 52


选择缺省 Unicode 排序顺序

缺省的 Unicode 排序顺序明显不同于服务器缺省字符集的排序顺序。这 个单独的配置参数是静态参数,如果它发生了变化,就需要重新启动服 务器并重新建立 unichar 数据的索引。此排序顺序使用字符串参数,而不 是数字参数,以确保排序顺序是唯一的。


10-6 列出了可用的缺省 Unicode 排序顺序。

10-6:缺省的 Unicode 排序顺序

名称

ID

说明

defaultml

20

缺省的 Unicode 多语言排序

thaidict

21

泰语字典顺序

iso14651

22

按照每个 ISO14651 标准进行排序

utf8bin

24

为与 UTF-8 二进制相匹配的 UTF-16 排序

binary

25

二进制排序

altnoacc

39

替代不区分变音

altdict

45

替代字典排序

altnocsp

46

替代不区分大小写且具有优先级

scandict

47

斯堪的纳维亚语字典排序

scannocp

48

斯堪的纳维亚语不区分大小写且具有优先级

bin_utf8

50

UTF-8 二进制排序顺序

dict

51

通用字典顺序

nocase

52

不区分大小写的通用字典顺序

nocasep

53

通用的不区分大小写且具有优先级

noaccent

54

通用的不区分变音的字典顺序

espdict

55

西班牙字典顺序

espnocs

56

不区分大小写的西班牙语字典顺序

espnoac

57

不区分变音的西班牙语字典顺序

rusnocs

59

不区分大小写的俄语字典顺序

cyrnocs

64

不区分大小写的古斯拉夫语字典顺序

elldict

65

希腊语字典顺序

hundict

69

匈牙利语字典顺序

hunnoac

70

不区分变音的匈牙利语字典顺序

hunnocs

71

不区分大小写的匈牙利语字典顺序

turknoac

73

不区分变音的土耳其语字典顺序


10-7 列出了可装载的排序顺序。

10-7:可装载的排序顺序

名称

(Name)


ID


说明 (Description)

cp932bin

129

CP932 的二进制排序相匹配的顺序

dynix

130

中文拼音排序

gb3213bn

137

GB2312 的二进制排序相匹配的顺序

cyrdict

140

通用古斯拉夫语字典顺序

turdict

155

土耳其语字典顺序

euckscbn

161

EUCKSC 的二进制排序相匹配的顺序

gbpinyin

163

中文拼音排序

rusdict

165

俄文字典排序

sjisbin

179

SJIS 的二进制排序相匹配的顺序

eucjisbn

192

EUCJIS 的二进制排序相匹配的顺序

big5bin

194

BIG5 的二进制排序相匹配的顺序


若要在 Adaptive Server 中查看此排序顺序列表,请使用 sp_helpsort。请 参见《参考手册:过程》。

可使用 $SYBASE/collate/Unicode 目录中的外部文件来添加排序顺序。名 称与归类 ID 存储在 syscharsets 中。在设置缺省 Unicode 排序顺序之前, 外部 Unicode 排序顺序名称不必在 syscharsets 中。


image

注释 外部 Unicode 排序顺序由 Sybase 提供。不要尝试创建外部

Unicode 排序顺序。

image


Unicode 数据相关联的排序顺序完全独立于与传统字符数据相关联的 排序顺序。所有涉及 Unicode 数据类型的关系表达式都将使用 Unicode 排序顺序执行。这包括涉及 Unicode 和非 Unicode 数据的混合模式表达 式。例如,在下面的查询中,varchar 字符常量“”将隐式转换为 unichar,并且将依据 Unicode 排序顺序执行比较:

select * from authors where unicode_name > 'Mü'

对于所有其它比较运算符以及并置运算符“+”、运算符“in”和运算 符“between”也都一样。同样,其目的是为了保持与现有数据库应用 程序的兼容性。

基于等同性的表连接(等同连接)需要特别说明。服务器通常会优化这 些连接以利用在参与列上定义的索引。连接 unichar 列和 char 列时,后者 需要进行转换,并且由于字符排序顺序和 Unicode 排序顺序不同,因此 优化程序将忽略 char 列上的索引。


Adaptive Server 12.5.1 版及更高版本中,如果服务器的缺省字符集配 置为 UTF-8,则可将服务器的缺省排序顺序(对于 char 数据)配置为以 上任意排序顺序。在此前的版本中,二进制排序顺序“bin_utf8(ID=50) 是唯一适用于 UTF-8 的排序顺序。虽然不要求这样做,但可以 为 UTF-8 中的 char 数据选择一种排序顺序,使其与 unichar 数据的排序 顺序相对应。

在为 Unicode 选择哪种二进制排序顺序的问题上,存在潜在的混淆。名为 “binary”的排序顺序对 unichar 数据 (UTF-16) 的效率最高,因此它是缺 省排序顺序。该顺序基于 Unicode 标量值,意味着所有 32 位代理对都放 在所有 16 Unicode 值之后。名为“utf8bin”的排序顺序用于匹配

UTF-8 char 数据的缺省(效率最高)二进制顺序,也就是“bin_utf8”。 因此,建议使用的匹配组合为:unichar 使用“binary”,UTF-8 char 也 使用“binary”;或 unichar 使用“utf8bin”,UTF-8 char 使用 “bin_utf8”。前一种组合偏向于优化 unichar 的效率,而后一种组合偏 向于优化 char 的效率。避免对 UTF-8 char 使用“utf8bin”,因为它与“ bin_utf8”等同,但效率较低。




--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具:ReadASADB。
此工具支持ASA v5.0,v6.0,v7.0,v8.0,v9.0,v10.0,v11.0,v12.0等版本。
恢复Sybase SQL Anywhere的工具在国内应该算首创。

ReadASADB功能
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具

  1. 适用于所有的SQL Anywhere版本    包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x
  2. 适用于所有的UltraLite版本
  3. 能够恢复出来表结构和数据
  4. 能够恢复自定义数据类型
  5. 能够恢复存储过程等对象的语法
  6. 能够导出到目标数据库
  7. 能够导出到SQL文件并生成导入脚本
  8. 支持多种字符集  包括:cp850、cp936、gb18030、utf8等
  9. 能够恢复未加密或者简单加密类型的数据
  10. 简单易用
  11. 限制:不支持AES加密的数据文件
请参考:研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具
            SQL Anywhere数据库非常规恢复工具ReadASADB使用介绍

ReadASADB适用场景

各种误操作:

  1. 误截断表(truncate table)
  2. 误删除表(drop table)
  3. 错误的where条件误删数据
  4. 误删除db或log文件
  5. 误删除表中的字段

本工具的应用场景:

1.因为物理磁盘故障、操作系统、系统软件方面或者掉电等等原因导致的Sybase SQL Anywhere数据库无法打开的情况;
2.误操作,包括truncate table,drop table,不正确的where条件导致的误删除等;
Sybase SQL Anywhere无法打开时,比较常见的错误是:Assertion failed。
如:
1、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Checkpoint log: invalid bitmap page -- transaction rolled back
2、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Page number on page does not match page requested -- transaction rolled back
3、Internal database error *** ERROR *** Assertion failed:200502 (9.0.2.2451) Checksum failure on page 23 -- transaction rolled back
4、File is shorter than expected
5、Internal database error *** ERROR *** Assertion failed: 201116 Invalid free list index page found while processing checkpoint log -- transaction rolled back
6、*** ERROR *** Assertion failed: 51901 Page for requested record not a table page or record not present on page等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------