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

 


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

readtext

说明 从指定偏移位置开始,读取指定字节数或字符数的 textunitext image

值。

语法 readtext [[database.]owner.]table_name.column_name text_pointer offset size

[holdlock | noholdlock] [readpast]

[using {bytes | chars | characters}] [at isolation {

[read uncommitted | 0] | [read committed | 1] | [repeatable read | 2] | [serializable | 3]}]

参数 table_name.column_name

textunitext image 列的名称。必须包括表名称。如果该表位于另 一数据库中,请指定数据库名;如果数据库中有多个具有该名称的 表,请指定所有者的名称。 owner 的缺省值是当前用户,而 database 的缺省值是当前数据库。

text_pointer

是一个 varbinary (16) 值,该值存储指向 textunitext image 数据的指 针。请使用 textptr 函数确定该值。textunitext image 数据不与其它 表列存储在同一组链接页中。它存储在单独的一组链接页中。指向实 际位置的指针和数据存储在一起;textptr 返回该指针。

offset

指定在开始读取 textunitext image 数据之前要跳过的字节数或字符 数。

size

指定要读取的数据的字节数或字符数。

holdlock

导致文本值被锁定以进行读取,直到事务结束。其他用户可以读取该 值,但不能修改该值。

noholdlock 禁止服务器持有执行该语句期间获得的任何锁,无论当前处于何种事 务隔离级别。在查询中不能同时指定 holdlock noholdlock 选项。

readpast

指定 readtext 自动跳过带排它锁的行,不必等待也不生成消息。


using

指定 readtext offset size 参数解释为字节数 ( bytes ) 还是 textptr 字符 数 (chars characters 同义)。当用于单字节字符集或用于 image

readtext 逐字节读取 image 值)时,该选项无效。如果未提供 using

选项,则 readtext size offset 参数解释为字节数。

at isolation

指定查询的隔离级别 (01 3)。如果忽略该子句,查询将使用执 行它的会话的隔离级别 (缺省隔离级别为 1)。如果在指定了 at isolation read uncommitted 的查询中同时还指定 holdlock,则 Adaptive Server 会发出警告并忽略 at isolation 子句。对于其它隔离级别, holdlock 优先于 at isolation 子句。

read uncommitted

将查询的隔离级别指定为 0。可以在 at isolation 子句中指定 0 来代替

read uncommitted

read committed

将查询的隔离级别指定为 1。可以在 at isolation 子句中指定 1 来代替

read committed

可重复的读取

将查询的隔离级别指定为 2。可以在 at isolation 子句中指定 2 来代替

serializable

serializable

将查询的隔离级别指定为 3。可以在 at isolation 子句中指定 3 来代替

serializable

示例 示例 1 选择 copy 列的第二个到第六个字符:

declare @val varbinary(16)

select @val = textptr(copy) from blurbs where au_id = "648-92-1872"

readtext blurbs.copy @val 1 5 using chars

示例 2

declare @val varbinary(16)

select @val = textptr (copy) from blurbs readpast where au_id = "648-92-1872"

readtext blurbs.copy @val 1 5 readpast using chars

用法 textptr 函数将 16 字节的二进制字符串(文本指针)返回到指定行的 textunitext image 列,或者如果查询返回了多个行,则返回到最 后一行的 textunitext image 列。声明一个局部变量来容纳文本指 针,然后用 readtext 使用此变量。


全局变量 @@ textsize 中的值是返回数据的字节数限制,如果它小于 为 readtext 指定的大小,则会取代后者。用 set textsize 可更改

@@ textsize 的值。

在使用字节数作为偏移和大小时, Adaptive Server 可能会在要返回 的 text 数据的开头或末尾找到部分字符。如果是这样,且字符集转 换被打开,则服务器在将文本返回到客户端之前,

• Adaptive Server 必须确定要发送到客户端的字节数,来响应 readtext 命令。当 offset size 用字节数表示时,要确定返回文本中的字节 数很简单。当偏移和大小用字符数表示时,服务器必须计算返回到 客户端的字节数。因此,在使用字符数表示 offset size 时,执行 速度可能会较慢。只有在 Adaptive Server 使用多字节字符集时, using characters 选项才有用:它确保 readtext 不会返回部分字符。

不能对视图中的 textunitext image 列使用 readtext

如果试图在更改为多字节字符集后在 text 值上使用 readtext,且没有 运行 dbcc fix_text,则命令会失败,并会有一条错误消息指示您在表 上运行 dbcc fix_text

unitext 列使用 readtext

在对定义为 unitext 数据类型的列发出 readtext 时,readtext offset 参数指定 在开始读取 unitext 数据之前要跳过的字节数或 Unicode 值。readtext size 参数指定要读取的字节数或 16 Unicode 值。如果指定 using bytes (缺 省值),则在必要时, offset size 值将被调整为始终以 Unicode 字符边 界开始和结束。

如果 enable surrogate processing on,则 readtext 只在代理边界上截断, 开始/结束位置也相应调整,并返回整个 Unicode 字符。因此,如果对定 义为 unitext 的列发出 readtext,则所返回的字节数可能会比指定的字节 数少。

在下面的示例中, unitext ut 包含字符串

U+0101U+0041U+0042U+0043

declare @val varbinary(16)

select @val = textptr (ut) from unitable where i = 1

readtext foo.ut @val 1 5

该查询将返回值 U+0041U+0042

offset 位置被调整为 2,因为 readtext 不能从 Unicode 字符的第二个字节处 开始读取。 Unicode 字符总是由偶数个字节组成。从第二个字节开始 (或 以奇数字节结束)会使结果偏移一个字节,从而导致结果集不正确。


在上面的示例中,size 值被调整为 4,因为 readtext 无法读取第四个字符

U+0043 的部分字节。

在下面的查询中,启用了 enable surrogate processing,并且 ut 列包含字符 串 U+d800dc00U+00c2U+dbffdeffU+d800dc00

declare @val varbinary(16)

select @val = textptr (ut) from unitable where i = 2

readtext foo.ut @val 1 8

该查询将返回值 U+00c2U+dbffdeff。起始位置被重新设置为 2,并且实 际的结果大小为 6 个字节而不是 8 个字节,原因是 readtext 未拆分代理 对。代理对 (在此示例中为范围 d800..dbff 中的第一个值和范围 dc00..dfff 中的第二个值)需要 4 字节边界,但遵从 UTF-16 Unicode 规则不允许拆分这些 4 字节字符。

使用 readpast 选项

readpast 选项只适用于仅数据锁定表。如果将该选项指定给所有页 锁定表,它将被忽略。

readpast 选项与 holdlock 选项不兼容。如果在一个命令中指定了两 者,将产生错误并终止命令。

如果 readtext 指定了 at isolation read uncommittedreadpast 将产生警 告但不终止命令。

如果语句隔离级别设置为 3readpast 将产生错误并终止命令。

如果会话范围的隔离级别为 3,将不加提示地忽略 readpast 选项。

如果会话范围的隔离级别是 0readpast 将产生警告但不终止命令。

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

权限 readtext 需要具有对表的 select 权限。

另请参见 命令 set, writetext.

系统过程 textimage unitext 数据类型 .




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