MS SQL中查看text,ntext,image类型数据

     在查询分析器,或者企业管理器中我们看这些类型的数据时,通常情况下是看不到或者看到不完的数据的。实际在T-SQL中具有一个ReadText函数可以完成此工作,若不知道要当前列的长度时,一个很傻的办法是可以设定一个很大的,然后,执行之,将出现错误提示,在错误提示中可以看到最大值。

     一个实际工作中的例子:

    

1  DECLARE   @ptrval   varbinary ( 16 )
2  SELECT   @ptrval   =   TEXTPTR (f006l_0046) 
3      FROM  TB_TEXT_0046  where  ob_textid_0046 = ' 36239710 '
4  READTEXT  TB_TEXT_0046.f006l_0046  @ptrval   0   3295
5  GO

 

以下这些文字摘自Ms SQL2000的联机丛书。

    

 

 

READTEXT

读取 textntextimage 列中的 textntextimage 值,从指定的偏移量开始读取指定的字节数。

语法

READTEXT { table.column text_ptr offset size } [ HOLDLOCK ]

参数

table.column

是从中读取的表和列的名称。表名和列名必须符合标识符的规则。必须指定表名和列名,不过可以选择是否指定数据库名称和所有者名称。

text_ptr

有效文本指针。text_ptr 必须是 binary(16)

offset

开始读取 textimagentext 数据之前跳过的字节数(使用 text image 数据类型时)或字符数(使用 ntext 数据类型时)。使用 ntext 数据类型时,offset 是在开始读取数据前跳过的字符数。使用 text image 数据类型时,offset 是在开始读取数据前跳过的字节数。

size

是要读取数据的字节数(使用 text image 数据类型时)或字符数(使用 ntext 数据类型时)。如果 size 是 0,则表示读取了 4 KB 字节的数据。

HOLDLOCK

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

注释

使用 TEXTPTR 函数获得有效的 text_ptr 值。如果返回不止一行,TEXTPTR 将返回指向指定行中的 textntextimage 列的指针,或返回指向查询所返回的最后一行中的 textntextimage 列的指针。由于 TEXTPTR 返回 16 字节的二进制字符串,所以最好声明一个控制文本指针的局部变量,然后在 READTEXT 中使用该变量。有关声明局部变量的更多信息,请参见 http://www.cnblogs.com/xinerzhui/admin/mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\tsqlref.chm::/ts_de-dz_66w5.htm

在 SQL Server 2000 中可能存在无效的文本指针。有关 text in row 选项的更多信息,请参见 sp_tableoption。有关如何使文本指针无效的更多信息,请参见 sp_invalidate_textptr

如果 @@TEXTSIZE 函数的值小于为 READTEXT 指定的大小,它将替代为 READTEXT 指定的大小。@@TEXTSIZE 函数是对由 SET TEXTSIZE 语句设置的返回数据字节数的限制。有关如何设置 TEXTSIZE 会话设置的更多信息,请参见 SET TEXTSIZE

权限

READTEXT 权限默认授予对指定的表具有 SELECT 权限的用户。这些权限可在传递 SELECT 权限时传递。

示例

下例读取 pub_info 表中 pr_info 列的第 2 个至第 26 个字符。

USE pubs
GO
DECLARE @ptrval varbinary(16)
SELECT @ptrval = TEXTPTR(pr_info)
FROM pub_info pr INNER JOIN publishers p
ON pr.pub_id = p.pub_id
AND p.pub_name = 'New Moon Books'
READTEXT pub_info.pr_info @ptrval 1 25
GO

 

转载于:https://www.cnblogs.com/xinerzhui/archive/2008/09/19/1294002.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值