text字段

支持text字段处理的仅有:
下面的函数和语句可以与 ntext、text 或 image 数据一起使用。
函数          语句
DATALENGTH    READTEXT
PATINDEX      SET TEXTSIZE
SUBSTRING     UPDATETEXT
TEXTPTR       WRITETEXT
TEXTVALID

1:替换

--创建数据测试环境
create table #tb(aa text)
insert into #tb select 'abc123abc123,asd'

--定义替换的字符串
declare @s_str varchar(8000),@d_str varchar(8000)
select @s_str='123' --要替换的字符串
 ,@d_str='000' --替换成的字符串

--字符串替换处理
declare @p varbinary(16),@postion int,@rplen int
select @p=textptr(aa),@rplen=len(@s_str),@postion=charindex(@s_str,aa)-1 from #tb
while @postion>0
begin
 updatetext #tb.aa @p @postion @rplen @d_str
 select @postion=charindex(@s_str,aa)-1 from #tb
end

--显示结果
select * from #tb

--删除数据测试环境
drop table #tb

/****************全部替换************************/
DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR(aa)  FROM  #tb  WHERE aa like '%数据2%'
if @ptrval is not null        -- 一定要加上此句,否则若找不到数据下一句就会报错
 UPDATETEXT #tb.aa @ptrval 0 null '数据3'

/****************在字段尾添加**********************************/
--定义添加的的字符串
declare @s_str varchar(8000)
select @s_str='*C'   --要添加的字符串
--字符串添加处理
declare @p varbinary(16),@postion int,@rplen int
select @p=textptr(detail) from test where id='001'
updatetext test.detail @p null null @s_str

总结:
1:Text字段类型不能直接用replace函数来替换,必须用updatetext
 2:字段比较不能用 where 字段 = ‘某数据’,可以用like来代替
 3:updatetext时,若@ptrval值为空会出错,需注意。

时间: 2024-10-29 08:38:16

text字段的相关文章

替换MSSQL数据库text字段恶意脚本

删除MSSQL数据库text字段的替换处理示例--全表替换,看到有人提问,所以整理了一个好久以前的处理方法,以供大家参考 方法很简单:text字段不能使用Replace,所以使用patindex -select * from Product where P_Intro like '%<script src="http://my.stsw518.cn/a002/1.js" src="http://my.stsw518.cn/a002/1.js"></

数据库 vs2012-vs2012中建的数据库,类型为text 字段,中文存进去显示的是问号,请问如何解决?

问题描述 vs2012中建的数据库,类型为text 字段,中文存进去显示的是问号,请问如何解决? vs2012中建的数据库,类型为text 字段,中文存进去显示的是问号,请问如何解决? 解决方案 字符编码问题,修改表的编码类型,或是在插入前做编码

c语言-如何用c读取从excel导出的文本文件中的text字段

问题描述 如何用c读取从excel导出的文本文件中的text字段 (初学c语言)我想编写一个实现材料管理功能的程序.因还不会从Excel中直接读取数据,因此选择了从Excel导出到txt文件中,然后再读取到程序当中. 但是问题来了.经常遇到的情形是,记录都有一个或者多个字段是字符型(数据库中的描述,非C语言的字符),从Excel中导出的文本中是以"text,text"处理的,即以英文状态下的双引号将这个字段放在了一起.下面是某条记录: 项目号 仓库名称 货位名称 Ident代码 材料代

编码-sql数据库,类型为text 字段,中文存进去显示的是问号,请问如何解决?

问题描述 sql数据库,类型为text 字段,中文存进去显示的是问号,请问如何解决? sql数据库,类型为text 字段,中文存进去显示的是问号,请问如何解决?有人说是提前做好编码工作,但是该怎样编码 解决方案 希望能帮到你,以下是mysql数据库终端下操作的一些命令:查看数据库 'my_db' 的编码格式:show create database my_db; 查看数据表 'my_table' 的编码格式:show create table my_table;推荐使用utf-8编码格式:1:将

MySQL内核月报 2014.10-MySQL· 系统限制·text字段数

背景 当用户从oracle迁移到MySQL时,可能由于原表字段太多建表不成功,这里讨论一个问题:一个InnoDB表最多能建多少个text字段. 我们后续的讨论基于创建表的语句形如:create table t(f1 text, f2 text, ..., fN text)engine=innodb; 默认配置 在默认配置下,上面的建表语句,N取值范围为[1, 1017]. 为什么是1017这个"奇怪"的数字.实际上单表的最大列数目是1024-1,但是由于InnoDB会增加三个系统内部字

关于mysql text 字段问题

问题描述 关于mysql text 字段问题 mysql 中如果一个表是主表,某个字段是text类型的,里面存放其他表的id,用逗号分隔, 请问如何通过这个text类型的字段中的id关联其他表? 解决方案 mysql字段 blob textmysql 多字段排序 问题 解决方案二: 使用 find_in_set 解决方案三: SPLIT_STR(membername, ' ', 1) as memberfirst, 然后再用memberfirst关联其他表

MSSQL数据库获取TEXT字段的内容长度_MsSql

SQL Server数据库如何获取TEXT字段的内容长度的方法,是通过DATALENGTH函数来实现的,接下来我们就通过DATALENGTH函数的语法及使用实例来了解一下这部分内容. DATALENGTH用来返回任何表达式所占用的字节数. 语法:DATALENGTH ( expression ) 参数:expression,任何类型的表达式. 返回类型:int 注释:DATALENGTH 对 varchar.varbinary.text.image.nvarchar 和 ntext 数据类型特别

除MSSQL数据库text字段中恶意脚本的删方法_MsSql

方法很简单:text字段不能使用Replace,所以使用patindex 复制代码 代码如下: -select * from Product where P_Intro like '%<script src="http://my.stsw518.cn/a002/1.js" src="http://my.stsw518.cn/a002/1.js"></script>%' --text字段的替换处理示例--全表替换 -- select datal

更新text字段时出现Row size too large报错应付措施_Mysql

起因: 团购开发报告说更新时出错. 更新SQL如下: 复制代码 代码如下: UPDATE table_name d SET d.column_name='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' WHERE d.ID=100976; 报错信息如下: Error Code : 1118 Row si