远程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. 实用程序指南

 


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

sortkey

说明 生成可用于根据归类行为对结果进行排序的值,该函数允许使用缺省设 置 (基于拉丁字符的字典排序顺序以及区分大小写或变音)以外的字符 归类行为。

语法 sortkey(char_expression | uchar_expression)[, {collation_name |

collation_ID}])

参数 char_expression

类型为 charvarcharnchar nvarchar 的字符型列名、变量或常量表 达式。

uchar_expression

类型为 unichar univarchar 的字符型列名、变量或常量表达式。

collation_name

是加有引号的字符串或字符变量,它指定要使用的归类。 264 页上

的表 2-8 显示了有效值。

collation_ID

是一个整数常量或变量,它指定要使用的归类。 264 页上的表 2-8

显示了有效值。

示例 示例 1 显示基于欧洲语言字典顺序的排序:

select * from cust_table where cust_name like "TI%" order by (sortkey(cust_name, "dict")

示例 2 显示基于简体中文拼音顺序的排序:

select *from cust_table where cust name like "TI%" order by (sortkey(cust-name, "gbpinyin")

示例 3 显示使用内嵌选项且基于欧洲语言字典顺序的排序:

select *from cust_table where cust_name like "TI%" order by cust_french_sort

示例 4 显示使用已存在的关键字且基于简体中文拼音顺序的排序:

select * from cust_table where cust_name like "TI%" order by cust_chinese_sort.

用法 sortkey 是一个系统函数,它生成用于根据归类行为对结果进行排序 的值。此函数允许使用缺省设置 (基于拉丁字符的字典排序顺序以 及大小写或变音区分)以外的字符归类行为。返回值为 varbinary 数 据类型的值,该值包含从 sortkey 函数返回的输入字符串的编码归类 信息。


例如,可将 sortkey 返回的值存储在具有源字符串的列中。若要按期 望的顺序检索字符数据,对于包含 sortkey 运行结果的列,应在 select 语句中包含 order by clause

sortkey 保证其为给定的一套归类标准返回的值能够用于对 varbinary

数据类型执行的二进制比较。

sortkey 可为每个输入字符最多生成 6 个字节的归类信息。因此,使 用 sortkey 的结果可能超过 varbinary 数据类型的长度限制。如果发生 这种情况,结果将被截断,以符合限制要求。由于此限制取决于服 务器的逻辑页大小,因此截断操作会删除每个输入字符的结果字 节,直到最终得到的字符串小于 DOL 锁定表和 APL 表中的以下值:

2-7:行和列的最大长度 — APL DOL

锁定方案

页大小

最大行长度

最大列长度

APL

2K 2048 字节)

1962

1960 字节

4K 4096 字节)

4010

4008 字节

8K 8192 字节)

8106

8104 字节

16K 16384 字节)

16298

16296 字节

DOL

2K 2048 字节)

1964

1958 字节

4K 4096 字节)

4012

4006 字节

8K 8192 字节)

8108

8102 字节

16K 16384 字节)

16300

16294 字节

如果表不包含任何可变长 度的列

16K 16384 字节)

16300

(取决于 varlen 的最大 起始偏移 = 8191

8191-6-2 = 8183 字节

如果表至少包含一个可变 长度列。 *

* 此大小包含六个字节的行开销和两个字节的行长度字段。


如果发生此情况, Adaptive Server 将发出警告消息,但包含 sortkey

函数的查询或事务仍将继续运行。

char_expression uchar_expression 必须由用服务器的缺省字符集进 行编码的字符组成。

char_expression uchar_expression 可以是空字符串。如果是空字符 串,则 sortkey 返回零长度 varbinary 值,并为空字符串存储一个空白。

空字符串与数据库列中的 NULL 字符串有不同的归类值。

如果 char_expression uchar_expression NULL,则 sortkey 返回

NULL 值。


如果 unicode 表达式没有指定的排序顺序,则 Adaptive Server 使用

binary 排序顺序。

如果未指定 collation_name collation_ID 的值,sortkey 将假定为二进 制归类。

sortkey 函数生成的二进制值可能因 Adaptive Server 主要版本的不 同而不同 (例如, 12.0 12.512.9.2 12.0 等都是不同的主要版 本)。如果是升级到 Adaptive Server 的当前版本,则应在进行任何二 进制比较之前,重新生成键并重新填充影子列。


image

注释 从版本 12.5 升级到 12.5.0.1 不需要执行该步骤,如果不重新 生成键,Adaptive Server 也不会生成任何错误或警告消息。虽然涉及 影子列的查询应能正常运行,但比较结果可能与升级之前的服务器 比较结果不同。

image

归类表

有两种归类表可用于进行多语种排序:

1 通过 sortkey 函数创建的一种 “内置”归类表。可以使用归类名或归 类 ID 指定内置表。

2 另一种是使用 Unilib 库排序函数创建的外部归类表。必须使用归类 名指定外部表。这些文件位于 $SYBASE/collate/unicode 中。

这两种方法同样有效,区别在于 “内置”表与 Adaptive Server 数据 库联系紧密,而外部表则不然。如果使用 Adaptive Server 数据库, 内置表可提供最佳性能。这两种方法都可以处理英语、欧洲语言和 亚洲语言的任意混合。

使用 sortkey 的方法有两种:

1 内嵌 — 这种方法将 sortkey 作为 order by clause 的一部分使用,对改 进现有应用程序以及最大程度地减少更改很有用。但是,这种方法 会动态地生成排序键,因此,在超过 1000 条记录的大数据集上无 法获得最佳性能。

2 预存在键 — 一旦表中添加了要求进行多语种排序的新记录 (如新 客户名),该方法就会调用 sortkey。必须在数据库,最好是在同一 表中对影子列 (binary varbinary 类型)进行设置,每列对应所需 的一种排序顺序 (如法语,中文等)。当查询要求对输出进行排序 时, order by clause 将使用其中一个影子列。在这种方法中,由于键 都已生成并存储,而且只需根据它们的二进制值就可进行快速比 较,因此可提供最佳性能。


您可查看可用的归类规则列表。打印列表的方法为:执行 sp_helpsort,或 在 syscharsets 中查询并选择 nameid description type 介于 2003 2999 之间)。

2-8 列出了 collation_name collation_ID 的有效值。

2-8:归类名称和 ID

说明

归类名称

归类 ID

缺省的 Unicode 多语种

缺省

20

泰文字典顺序

thaidict

21

ISO14651 标准

iso14651

22

UTF-16 排序 — 与 UTF-8 二进制排序匹配

utf8bin

24

CP 850 方案 — 没有变音

altnoacc

39

CP 850 方案 — 小写优先

altdict

45

CP 850 西欧 — 没有大小写优先级

altnocsp

46

CP 850 斯堪的纳维亚文 — 字典排序

scandict

47

CP 850 斯堪的纳维亚文 — 不区分大小写, 具有优先级

scannocp

48

GB 拼音

gbpinyin

不可用

二进制排序

binary

50

Latin-1 英文、法文、德文字典

dict

51

Latin-1 英文、法文、德文,没有大小写

nocase

52

Latin-1 英文、法文、德文,没有大小写优先级

nocasep

53

Latin-1 英文、法文、德文,没有变音

noaccent

54

Latin-1 西班牙文字典

espdict

55

Latin-1 西班牙文,没有大小写

espnocs

56

Latin-1 西班牙文,没有变音

espnoac

57

ISO 8859-5 俄文字典

rusdict

58

ISO 8859-5 俄文,没有大小写

rusnocs

59

ISO 8859-5 古斯拉夫文字典

cyrdict

63

ISO 8859-5 古斯拉夫文,没有大小写

cyrnocs

64

ISO 8859-7 希腊文字典

elldict

65

ISO 8859-2 匈牙利文字典

hundict

69

ISO 8859-2 匈牙利文,没有变音

hunnoac

70

ISO 8859-2 匈牙利文,没有大小写

hunnocs

71

ISO 8859-9 土耳其文字典

turdict

72

ISO 8859-9 土耳其文,没有变音

turknoac

73

ISO 8859-9 土耳其文,没有大小写

turknocs

74

CP932 二进制排序

cp932bin

129


说明

归类名称

归类 ID

中文拼音排序

dynix

130

GB2312 二进制排序

gb2312bn

137

通用古斯拉夫文字典

cyrdict

140

土耳其文字典

turdict

155

EUCKSC 二进制排序

euckscbn

161

中文拼音排序

gbpinyin

163

俄文字典排序

rusdict

165

SJIS 二进制排序

sjisbin

179

EUCJIS 字典排序

eucjisbn

192

BIG5 二进制排序

big5bin

194

Shift-JIS 二进制顺序

sjisbin

259


标准 符合 ANSI SQL 的级别 Transact-SQL 扩展。

权限 任何用户都可以执行 sortkey

另请参见 函数 compare




--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从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等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------