好像不行!
我是在存储过程中出入一个TEXT类型的参数,然后在存储过程中进行处理。
没法用到UPDATETEXT
我是在存储过程中出入一个TEXT类型的参数,然后在存储过程中进行处理。
没法用到UPDATETEXT
解决方案 »
- 还原数据库时报错
- 菜鸟问:如何查看DSN名是什么?
- 求sql语句。
- 如何才能查到各用戶在某個數據庫的select,update,delete,into等記錄
- 事务不起作用?
- 还是金额的问题 请写详细 多谢(很急)
- 单独安装SqlServer2005无法连接上去,但装上SqlServer2000后2005就可以登录上去了?
- 谁知道SQL Server 2000的一个单表最多能存多少条数据???
- 做全文索引时提示:所选表中没有在不允许 NULL 的列上的唯一单个列索引。
- excel指定列导入到sql server,一直报错
- SQL SERVER如何发信到Lotus Notes
- 一个没有办法的问题???希望能进来帮帮忙???谢谢各位
他可以操作text类型
返回字符、binary、text 或 image 表达式的一部分。有关可与该函数一起使用的有效 Microsoft® SQL Server™ 数据类型的更多信息,请参见数据类型。 语法
SUBSTRING ( expression , start , length ) 参数
expression是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。start是一个整数,指定子串的开始位置。length是一个整数,指定子串的长度(要返回的字符数或字节数)。说明 由于在 text 数据上使用 SUBSTRING 时 start 和 length 指定字节数,因此 DBCS 数据(如日本汉字)可能导致在结果的开始或结束位置拆分字符。此行为与 READTEXT 处理 DBCS 的方式一致。然而,由于偶而会出现奇怪的结果,建议对 DBCS 字符使用 ntext 而非 text。
返回类型
如果 expression 是支持的字符数据类型,则返回字符数据。如果 expression 是支持的 binary 数据类型,则返回二进制数据。返回字符串的类型与给定表达式的类型相同(表中显示的除外)。给定的表达式 返回类型
text varchar
image varbinary
ntext nvarchar
READTEXT
读取 text、ntext 或 image 列中的 text、ntext 或 image 值,从指定的偏移量开始读取指定的字节数。语法
READTEXT { table.column text_ptr offset size } [ HOLDLOCK ] 参数
table.column是从中读取的表和列的名称。表名和列名必须符合标识符的规则。必须指定表名和列名,不过可以选择是否指定数据库名称和所有者名称。text_ptr有效文本指针。text_ptr 必须是 binary(16)。offset开始读取 text、image 或 ntext 数据之前跳过的字节数(使用 text 或 image 数据类型时)或字符数(使用 ntext 数据类型时)。使用 ntext 数据类型时,offset 是在开始读取数据前跳过的字符数。使用 text 或 image 数据类型时,offset 是在开始读取数据前跳过的字节数。 size是要读取数据的字节数(使用 text 或 image 数据类型时)或字符数(使用 ntext 数据类型时)。如果 size 是 0,则表示读取了 4 KB 字节的数据。HOLDLOCK使文本值一直锁定到事务结束。其他用户可以读取该值,但是不能对其进行修改。注释
使用 TEXTPTR 函数获得有效的 text_ptr 值。如果返回不止一行,TEXTPTR 将返回指向指定行中的 text、ntext 或 image 列的指针,或返回指向查询所返回的最后一行中的 text、ntext 或 image 列的指针。由于 TEXTPTR 返回 16 字节的二进制字符串,所以最好声明一个控制文本指针的局部变量,然后在 READTEXT 中使用该变量。有关声明局部变量的更多信息,请参见 DECLARE @local_variable。 在 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
请参见@@TEXTSIZEUPDATETEXTWRITETEXT©1988-2000 Microsoft Corporation。保留所有权利。
我的思想如下:
text数据是一串已逗号分隔的字符串,
获取逗号第一次出现的位置,然后取逗号之前的数据(此处可用SUBSTRING,因为返回的数据是字符型的)。然后删除逗号之前的内容,截取剩下的数据(此处不能用SUBSTRING,因为返回的数据是text型的)
然后重复以上操作,直至取完所有的数据。拜托了!!!
(其实我想过在传入text数据参数之前,先将其格式化,然后按固定的字符位置取数,不过我觉得这样太麻烦了)