SQL Server/T-SQL/Data Type/text
Версия от 13:46, 26 мая 2010; (обсуждение)
READTEXT in a loop to read chunks of text.
5>
6> CREATE TABLE myTable
7> (
8> pub_id char(4) NOT NULL,
9> logo image NULL,
10> pr_info text NULL
11> )
12> GO
7> SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
8> SET TEXTSIZE 100
9>
10> BEGIN TRAN
11>
12> DECLARE @mytextptr varbinary(16), @totalsize int,
13> @lastread int, @readsize int
14>
15> SELECT
16> @mytextptr=TEXTPTR(pr_info), @totalsize=DATALENGTH(pr_info),
17> @lastread=0,
20> @readsize=CASE WHEN (@@TEXTSIZE < DATALENGTH(pr_info)) THEN
21> @@TEXTSIZE ELSE DATALENGTH(pr_info) END
22> FROM myTable WHERE pub_id="1622"
23>
24> IF @mytextptr IS NOT NULL AND @readsize > 0
25> WHILE (@lastread < @totalsize)
26> BEGIN
27> READTEXT myTable.pr_info @mytextptr @lastread @readsize
28> IF (@@error <> 0)
29> BREAK
31> SELECT @lastread=@lastread + @readsize
33> IF ((@readsize + @lastread) > @totalsize)
34> SELECT @readsize=@totalsize - @lastread
35> END
36>
37> COMMIT TRAN
38> GO