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

 


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

jConnect 字符集转换程序

jConnect 对所有字符集转换使用特殊类。通过选择字符集转换程序类, 可指定 jConnect 处理单字节和多字节字符集转换的方式以及转换对应用 程序性能的影响。

共有两个字符集转换类。 jConnect 使用的转换类基于 JCONNECT_VERSIONCHARSET CHARSET_CONVERTER_CLASS 连接属性。

TruncationConverter 类只能用于使用 ASCII 字符的单字节字符集(如 iso_1 cp850)。它不能用于多字节字符集或使用非 ASCII 字符的 单字节字符集。当 JCONNECT_VERSION 设置为 2 时, TruncationConverter 类是缺省转换程序。

jConnect 7 使用 TruncationConverter 类以与 jConnect version 2.2 相同的 方式处理字符集。当 JCONNECT_VERSION = 2 时, TruncationConverter 类是缺省转换程序。

PureConverter 类是纯 Java 类多字节字符集转换程序。 jConnect JCONNECT_VERSION = 4 或更高版本时使用此类。如果 jConnect 检测到在 CHARSET 连接属性中指定的字符集与 TruncationConverter 类不兼容,则在 JCONNECT_VERSION = 2 时也使用此转换程序。

虽然 PureConverter 类能实现多字节字符集转换,但也可能降低 jConnect 驱动程序的性能。如果需要考虑驱动程序性能,请参见 36 页的 “提高字符集转换性能


选择字符集转换程序


jConnect 使用 JCONNECT_VERSION 来确定要使用的缺省 字符集转换程序类。 JCONNECT_VERSION = 2 或更高版本时,缺省值 为 PureConverter TruncationConverterJCONNECT_VERSION = 4 或更 高版本时,缺省值为 PureConverter

也可以通过设置 CHARSET_CONVERTER_CLASS 连接属性指定希望 jConnect 使用的字符集转换程序。如果希望使用 jConnect 版本的缺省字 符集转换程序之外的字符集转换程序,此方法将很有用。

例如,如果您设置 JCONNECT_VERSION = 4 或更高版本,但要使用 TruncationConverter 类而不使用多字节的 PureConverter 类,则可以设置 CHARSET_CONVERTER_CLASS

...

props.put("CHARSET_CONVERTER_CLASS",

"com.sybase.jdbc4.utils.TruncationConverter")


设置 CHARSET 连接属性

可以通过设置 CHARSET 驱动程序属性指定要在应用程序中使用的字符 集。如果没有设置 CHARSET 属性:

JCONNECT_VERSION = 2 时, jConnect 将使用 iso_1 作为缺省字符 集。

JCONNECT_VERSION = 3 和更高版本时,jConnect 将使用数据库的 缺省字符集并会在客户端自动调整以执行任何必要的转换。

对于从 6.05 开始的 jConnect 版本,如果 jConnect 无法将用户数据成 功转换为协商的字符集,则在服务器支持 Unicode 字符时,它会向 服务器发送未经转换的 Unicode 字符,否则会抛出异常。

也可以使用 IsqlApp 应用程序的 -J charset 命令行选项指定字符集。 若要确定 Adaptive Server 上安装了哪些字符集,请在服务器上发出以下

SQL 查询:

select name from syscharsets go

对于 PureConverter 类,如果客户端 Java 虚拟机 (VM) 不支持指定的 CHARSET,那么连接将失败并引发 SQLException,指出必须将 CHARSET 设置为 Adaptive Server 和客户端都支持的字符集。

如果使用 TruncationConverter 类,则无论指定的 CHARSET 是否是 7 ASCII 码,都将进行字符截断。因此,如果您的应用程序需要处理非 ASCII 数据 (例如任何亚洲语言),则不应使用 TruncationConverter,因 为这会导致数据损坏。


提高字符集转换性能


如果使用多字节字符集并需要提高驱动程序性能,可以使用 jConnect 示 例提供的 SunIoConverter 类。有关详细信息,请参见 136 页的 “ SunIoConverter 字符集转换

另外,如果您的应用程序仅处理 7 ASCII 数据,则可以使用

TruncationConverter 来提高性能。


支持的字符集


2-4 列出了 jConnect 支持的 Sybase 字符集。表中还列出了每个支持的 字符集的对应的 JDK 字节转换程序。

虽然 jConnect 支持 UCS-2,但目前 Sybase 数据库或 Open Server 都不支 持 UCS-2


Adaptive Server 12.5 和更高版本支持一个 Unicode 版本 (称为 UTF-16

编码)。

2-4:支持的 Sybase 字符集

image

SybCharset 名称 JDK 字节转换程序

image

ascii_7 ASCII

image

image

big5 Big5

big5hk (针对 JDK 1.3 及更高版 本)

Big5_HKSCS

image

cp037 Cp037

image

cp437 Cp437

image

cp500 Cp500

image

cp850 Cp850

image

cp852 Cp852

image

cp855 Cp855

image

cp857 Cp857

image

cp860 Cp860

image

cp863 Cp863

image

cp864 Cp864

image

cp866 Cp866

image

cp869 Cp869

image

cp874 Cp874

image

cp932 MS932

image

cp936 GBK

image

cp949 Cp949

image

cp950 Cp950

image

cp1250 Cp1250

image

cp1251 Cp1251

image

cp1252 Cp1252

image

cp1253 Cp1253

image

cp1254 Cp1254

image

cp1255 Cp1255

image

cp1256 Cp1256

image

cp1257 Cp1257

image

cp1258 Cp1258

image

deckanji EUC_JP

image

eucgb EUC_CN

image

eucjis EUC_JP

image

eucksc EUC_KR


image

SybCharset 名称 JDK 字节转换程序

image

gb18030 GB18030

image

ibm420 Cp420

image

ibm918 Cp918

image

iso_1 ISO8859_1

image

iso88592 ISO8859-2

image

is088595 ISO8859_5

image

iso88596 ISO8859_6

image

iso88597 ISO8859_7

image

iso88598 ISO8859_8

image

iso88599 ISO8859_9

image

iso15 ISO8859_15_FDIS

image

koi8 KOI8_R

image

mac MacRoman

image

mac_cyr MacCyrillic

image

mac_ee MacCentralEurope

image

macgreek MacGreek

image

macturk MacTurkish

image

sjis MS932

image

tis620 MS874

image

ucs2 Unicode

image

utf8 UTF8

image


处理不受支持的字符集


jConnect 不支持以下 Sybase 字符集,因为 JDK 字节转换程序与这些

Sybase 字符集都不类似:

cp1047

euccns

greek8

roman8

roman9

turkish8

可以对 TruncationConverter 类使用这些字符集,只要应用程序只使用这 些字符的 7 ASCII 子集即可。


取代缺省字符集映射


使用 JAVA_CHARSET_MAPPING 连接属性可取代 Adaptive Server 的缺 省字符集映射。

示例 1 将服务器字符集 cp949 映射到 ms949

props.put("CHARSET", "cp949"); /* Server character set */ props.put("JAVA_CHARSET_MAPPING", "ms949"); /* Java character set mapping */

大多数 Adaptive Server 字符集与其所映射到的 Java 字符集同名。有关映 射到 Java 字符集而使用不同名称的字符集,请参见 37 页的表 2-4


欧洲货币符号支持


jConnect 支持使用欧洲货币符号 (或 “euro”),并支持欧洲货币符号 与 UCS-2 Unicode 间的相互转换。

euro 已添加到以下 Sybase 字符集中:cp1250cp1251cp1252cp1253cp1254cp1255cp1256cp1257cp1258cp874iso885915 utf8

若要使用 euro 符号:

使用 PureConvertor CheckPureConverter 类,它是一个纯 Java 多字 节字符集转换程序。有关详细信息,请参见 35 页的 “ jConnect 字符集转换程序

检验是否在服务器上安装了新的字符集。

Adaptive Server SQL Anywhere 都支持 euro 符号。

在客户端上选择合适的字符集。有关详细信息,请参见 36 页的 “设置 CHARSET 连接属性




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