USE pubs GO DECLARE @ptrval varbinary(16),@len int SELECT @ptrval = TEXTPTR(pr_info),@len = datalength(pr_info) from pub_info select @len READTEXT pub_info.pr_info @ptrval 0 @len如果你要从1开始,那么就要 READTEXT pub_info.pr_info @ptrval 1 @len-1
刚才错了。应该是 如果你要从1开始,那么就要 USE pubs GO DECLARE @ptrval varbinary(16),@len int SELECT @ptrval = TEXTPTR(pr_info),@len = datalength(pr_info)-1 from pub_info select @len READTEXT pub_info.pr_info @ptrval 1 @len
To : gmlxf(烛光) 看这个 sql 语句对不对 USE pubs GO DECLARE @ptrval varbinary(16),@len int SELECT @ptrval = TEXTPTR(pr_info),@len = datalength(pr_info)-1,id,name from pub_info select @len READTEXT pub_info.pr_info @ptrval 1 @len报错:A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations.
打扰一下,上次你帮我解决了 readtext 在sql server 中取出来的问题,可是readtext 在 开发语言中是如何取值的. asp or php? $sql="DECLARE @ptrval varbinary(16),@len int\n"; $sql.="SELECT @ptrval = TEXTPTR(content),@len = datalength(content)-1 from softinfo where id=13\n"; $sql.="select @len\n";
$sql.="READTEXT softinfo.content @ptrval 1 @len";然后取值 if (odbc_fetch_row($result_id)) echo odbc_result($result_id,2); @len 可以取出,而 readtext 那部分还是取不出来了声明:上面的东东在荐储过程在 sql server 中执行是没问题的
CREATE PROCEDURE report_read @report_id int AS DECLARE @ptrval varbinary(16),@len int SELECT @ptrval = TEXTPTR(content),@len = datalength(content)-1 from report where id=@report_id READTEXT report.content @ptrval 1 @len
把500扩大就行了
select pr_info from pub_info
sql="DECLARE @ptrval varbinary(16)
SELECT @ptrval = TEXTPTR(pr_info),id ,name
FROM pub_info
READTEXT pub_info.pr_info @ptrval 1 10000"
GO
DECLARE @ptrval varbinary(16)
SELECT @ptrval = TEXTPTR(pr_info)
FROM pub_info
READTEXT pub_info.pr_info @ptrval 1 1500 --这个是你取数的长度.设大一点就行了.
指定由 SELECT 语句返回的 text 和 ntext 数据的大小。
而readtext语句是不受这个语句限制的.
readtext 用法:
READTEXT 表名.字段名 指针 开始读取的位置 读取的大小
GO
DECLARE @ptrval varbinary(16),@len int
SELECT @ptrval = TEXTPTR(pr_info),@len = datalength(pr_info) from pub_info
select @len
READTEXT pub_info.pr_info @ptrval 0 @len
sql="DECLARE @ptrval varbinary(16)
SELECT @ptrval = TEXTPTR(pr_info),id ,name
FROM pub_info
READTEXT pub_info.pr_info @ptrval 1 10000"10000如果超过了你的pr_info的长度,将会出错。
你可以用datelength()函数得到text的长度值。
USE pubs
GO
DECLARE @ptrval varbinary(16),@len int
SELECT @ptrval = TEXTPTR(pr_info),@len = datalength(pr_info) from pub_info
select @len
READTEXT pub_info.pr_info @ptrval 0 @len如果你要从1开始,那么就要
READTEXT pub_info.pr_info @ptrval 1 @len-1
如果你要从1开始,那么就要
USE pubs
GO
DECLARE @ptrval varbinary(16),@len int
SELECT @ptrval = TEXTPTR(pr_info),@len = datalength(pr_info)-1 from pub_info
select @len
READTEXT pub_info.pr_info @ptrval 1 @len
看这个 sql 语句对不对
USE pubs
GO
DECLARE @ptrval varbinary(16),@len int
SELECT @ptrval = TEXTPTR(pr_info),@len = datalength(pr_info)-1,id,name from pub_info
select @len
READTEXT pub_info.pr_info @ptrval 1 @len报错:A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations.
$sql="DECLARE @ptrval varbinary(16),@len int\n";
$sql.="SELECT @ptrval = TEXTPTR(content),@len = datalength(content)-1 from softinfo where id=13\n";
$sql.="select @len\n";
$sql.="READTEXT softinfo.content @ptrval 1 @len";然后取值
if (odbc_fetch_row($result_id)) echo odbc_result($result_id,2); @len 可以取出,而 readtext 那部分还是取不出来了声明:上面的东东在荐储过程在 sql server 中执行是没问题的
AS
DECLARE @ptrval varbinary(16),@len int
SELECT @ptrval = TEXTPTR(content),@len = datalength(content)-1 from report where id=@report_id
READTEXT report.content @ptrval 1 @len