社区
疑难问题
帖子详情
有一个大于8000个字符的字符串,如何在sql server中存储,
flymanwlq
2003-08-25 03:11:23
存储以后如何读出?用text么?我光报错.
...全文
110
6
打赏
收藏
有一个大于8000个字符的字符串,如何在sql server中存储,
存储以后如何读出?用text么?我光报错.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
flymanwlq
2003-08-26
打赏
举报
回复
txlicenhe(不做技术高手)
你留得程序中有下面片断READTEXT pub_info.pr_info @ptrval 1 25
如果我想从第一位读到最后text的最后一位,我该怎么办?谢谢啦:)
CrazyFor
2003-08-25
打赏
举报
回复
Transact-SQL 参考
ntext、text 和 image
用于存储大型非 Unicode 字符、Unicode 字符及二进制数据的固定长度和可变长度数据类型。Unicode 数据使用 UNICODE UCS-2 字符集。
ntext
可变长度 Unicode 数据的最大长度为 230 - 1 (1,073,741,823) 个字符。存储大小是所输入字符个数的两倍(以字节为单位)。ntext 在 SQL-92 中的同义词是 national text。
text
服务器代码页中的可变长度非 Unicode 数据的最大长度为 231-1 (2,147,483,647) 个字符。当服务器代码页使用双字节字符时,存储量仍是 2,147,483,647 字节。存储大小可能小于 2,147,483,647 字节(取决于字符串)。
image
可变长度二进制数据介于 0 与 231-1 (2,147,483,647) 字节之间。
注释
下面的函数和语句可以与 ntext、text 或 image 数据一起使用。
函数 语句
DATALENGTH READTEXT
PATINDEX SET TEXTSIZE
SUBSTRING UPDATETEXT
TEXTPTR WRITETEXT
TEXTVALID
请参见
ALTER TABLE
CAST 和 CONVERT
CREATE TABLE
数据类型转换
数据类型
DECLARE @local_variable
DELETE
INSERT
LIKE
SET @local_variable
UPDATE
使用 Unicode 数据
©1988-2000 Microsoft Corporation。保留所有权利。
king0401
2003-08-25
打赏
举报
回复
ntext
可变长度 Unicode 数据的最大长度为 230 - 1 (1,073,741,823) 个字符。存储大小是所输入字符个数的两倍(以字节为单位)。ntext 在 SQL-92 中的同义词是 national text。
text
服务器代码页中的可变长度非 Unicode 数据的最大长度为 231-1 (2,147,483,647) 个字符。当服务器代码页使用双字节字符时,存储量仍是 2,147,483,647 字节。存储大小可能小于 2,147,483,647 字节(取决于字符串)。
image
可变长度二进制数据介于 0 与 231-1 (2,147,483,647) 字节之间。
注释
下面的函数和语句可以与 ntext、text 或 image 数据一起使用。
函数 语句
DATALENGTH READTEXT
PATINDEX SET TEXTSIZE
SUBSTRING UPDATETEXT
TEXTPTR WRITETEXT
TEXTVALID
txlicenhe
2003-08-25
打赏
举报
回复
用Text
用Text类型:
READTEXT
UPDATETEXT
WRITETEXT
--------------------
Transact-SQL 参考
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
请参见
@@TEXTSIZE
UPDATETEXT
WRITETEXT
©1988-2000 Microsoft Corporation。保留所有权利。
flymanwlq
2003-08-25
打赏
举报
回复
一个HTML的文件很容易就超过了8000个字符,我觉得应该用text,但不知道该怎么用?
liuyun2003
2003-08-25
打赏
举报
回复
大于8000的字符,没有接触过,好象有一种类型是可以存放。
在
SQL
SERVER
中
如何检测
一个
字符串
中
是否包含另
一个
字符串
在
SQL
SERVER
中
如何检测
一个
字符串
中
是否包含另
一个
字符串
–当charindex返回值
大于
0时则包含 为0不包含 select CHARINDEX(‘456’,‘123456’)
SQL
语句使用CHARINDEX函数,来测试
一个
字符串
中
是否包含另
一个
字符串
中
的方法: 一、CHARINDEX函数介绍 1、函数功能:函数返回字符或者
字符串
在另
一个
字符串
中
的起始位置。 2、语法:CHARINDEX...
SQL
Server
-
存储
过程
中
使用
字符串
和分隔符实现传递数组参数(ntext逗号连接的
字符串
转换成列)
一 简介 在高级语言
中
,很容易编写带有数组参数的函数。但在数据库的
存储
过程
中
却没有那么容易,因为
存储
过程的参数只能以一些基本类型作为参数。我们希望数组作为参数的情况是很常见的,例如有
一个
表Table(Id int, Data nvarchar(50)),需要向该表一次存入一批数据。如果
存储
过程以基本数据类型作为参数,定义为InsertData(@data nvarchar(50)), 那么需要循环多次调用该
存储
过程。 要使
存储
过程支持数组参数,需做一点变通。可以将需输入的数据转换成
字符串
,并以某
一个
分隔
sql
server
替换
字符串
中
的某些字符
declare @stringFinal nvarchar(128) declare @index int set @stringOrigin = '111,222,333' set @stringChange = '999' --将
字符串
@stringOrigin
中
“,”之前的部分换成@stringChange --先获取“,”在@stringOrigin
中
的索引 set @index =charindex(',',@stringOrigin,1) --charindex(想要找到的
字符串
最大长度为8
SQL
Server
常用的
字符串
函数
SQL
Server
常用的
字符串
函数
SQL
中
字符串
一、字符转换函数 1、ASCII() 返回字符表达式最左端字符的ASCII 码值。在ASCII()函数
中
,纯数字的
字符串
可不用‘’括起来,但含其它字符的
字符串
必须用‘’括起来使用,否则会出错。 2、CHAR() 将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL 。 3、LOWER()和UPPER() LOWER()将
字符串
全部转为小...
疑难问题
22,209
社区成员
121,731
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章