텍스트 및 이미지 함수 - TEXTPTR (Transact-SQL)

적용 대상:SQL ServerAzure SQL Managed Instance

text, ntext 또는 image 열에 해당하는 텍스트 포인터 값을 varbinary 형식으로 반환합니다. 검색한 텍스트 포인터 값은 READTEXT, WRITETEXT 및 UPDATETEXT 문에서 사용할 수 있습니다.

Important

이 기능은 이후 버전의 SQL Server에서 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 애플리케이션은 수정하세요. 대체 기능을 사용할 수 없습니다.

Transact-SQL 구문 표기 규칙

Syntax

TEXTPTR ( column )  

참고 항목

SQL Server 2014(12.x) 및 이전 버전에 대한 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조 하세요.

인수

column
사용될 text, ntext 또는 image 열입니다.

반환 형식

varbinary

설명

행 내부 텍스트가 있는 테이블의 경우, TEXTPTR 함수는 처리할 텍스트에 대한 핸들을 반환합니다. 텍스트 값이 null이어도 유효한 텍스트 포인터를 얻을 수 있습니다.

뷰의 열에서는 TEXTPTR 함수를 사용할 수 없습니다. 테이블의 열에만 사용할 수 있습니다. 뷰의 열에 TEXTPTR 함수를 사용하려면 ALTER DATABASE 호환성 수준을 사용하여 호환성 수준을 80으로 설정해야 합니다. 테이블에 행 내부 텍스트가 없고 UPDATETEXT 문으로 text, ntext 또는 image 열을 초기화하지 않은 경우 TEXTPTR는 null 포인터를 반환합니다.

TEXTVALID를 사용하여 텍스트 포인터의 존재 여부를 테스트하십시오. 유효한 텍스트 포인터가 없으면 UPDATETEXT, WRITETEXT 또는 READTEXT를 사용할 수 없습니다.

이러한 함수와 문은 text, ntextimage 데이터를 사용하는 작업에도 유용합니다.

함수 또는 문 Description
PATINDEX(‘%pattern%’ ,expression) text 또는 ntext 열에서 지정된 문자열의 문자 위치를 반환합니다.
DATALENGTH(expression) text, ntextimage 열의 데이터 길이를 반환합니다.
SET TEXTSIZE SELECT 문으로 반환할 text, ntext 또는 image 데이터의 크기 제한(바이트)을 반환합니다.
SUBSTRING(text_column, start, length) 지정한 start 오프셋과 length로 지정한 varchar 문자열을 반환합니다. 길이는 8KB보다 작아야 합니다.

예제

참고

다음 예를 실행하려면 pubs 데이터베이스를 설치해야 합니다.

A. TEXTPTR 사용

다음 예에서는 TEXTPTR 함수를 사용하여 pubs 데이터베이스의 pub_info 테이블에서 New Moon Books와 관련된 imagelogo를 찾는 방법을 보여 줍니다. 텍스트 포인터는 지역 변수인 @ptrval.로 설정합니다.

USE pubs;  
GO  
DECLARE @ptrval VARBINARY(16);  
SELECT @ptrval = TEXTPTR(logo)  
FROM pub_info pr, publishers p  
WHERE p.pub_id = pr.pub_id   
   AND p.pub_name = 'New Moon Books';  
GO  

B. 행 내부 텍스트와 함께 TEXTPTR 사용

SQL Server에서는 다음 예제와 같이 트랜잭션 내에서 행 내부 텍스트 포인터를 사용해야 합니다.

CREATE TABLE t1 (c1 INT, c2 TEXT);  
EXEC sp_tableoption 't1', 'text in row', 'on';  
INSERT t1 VALUES ('1', 'This is text.');  
GO  
BEGIN TRAN;  
   DECLARE @ptrval VARBINARY(16);  
   SELECT @ptrval = TEXTPTR(c2)  
   FROM t1  
   WHERE c1 = 1;  
   READTEXT t1.c2 @ptrval 0 1;  
COMMIT;  

C. 텍스트 데이터 반환

다음 예에서는 pub_id 테이블에서 pr_info 열 및 pub_info 열의 16바이트 텍스트 포인터를 선택하는 방법을 보여 줍니다.

USE pubs;  
GO  
SELECT pub_id, TEXTPTR(pr_info)  
FROM pub_info  
ORDER BY pub_id;  
GO  

결과 집합은 다음과 같습니다.

pub_id                                      
------ ----------------------------------   
0736   0x6c0000000000feffb801000001000100   
0877   0x6d0000000000feffb801000001000300   
1389   0x6e0000000000feffb801000001000500   
1622   0x700000000000feffb801000001000900   
1756   0x710000000000feffb801000001000b00   
9901   0x720000000000feffb801000001000d00   
9952   0x6f0000000000feffb801000001000700   
9999   0x730000000000feffb801000001000f00   
  
(8 row(s) affected)  

다음 예에서는 TEXTPTR를 사용하지 않고 텍스트의 처음 8000바이트를 반환하는 방법을 보여 줍니다.

USE pubs;  
GO  
SET TEXTSIZE 8000;  
SELECT pub_id, pr_info  
FROM pub_info  
ORDER BY pub_id;  
GO  

결과 집합은 다음과 같습니다.

pub_id pr_info                                                                                                                                                                                                                                                           
------ -----------------------------------------------------------------  
0736   New Moon Books (NMB) has just released another top ten publication. With the latest publication this makes NMB the hottest new publisher of the year!                                                                                                             
0877   This is sample text data for Binnet & Hardley, publisher 0877 in the pubs database. Binnet & Hardley is located in Washington, D.C.  
  
This is sample text data for Binnet & Hardley, publisher 0877 in the pubs database. Binnet & Hardley is located in Washi   
1389   This is sample text data for Algodata Infosystems, publisher 1389 in the pubs database. Algodata Infosystems is located in Berkeley, California.  
  
9999   This is sample text data for Lucerne Publishing, publisher 9999 in the pubs database. Lucerne publishing is located in Paris, France.  
  
This is sample text data for Lucerne Publishing, publisher 9999 in the pubs database. Lucerne publishing is located in   
  
(8 row(s) affected)  

D. 특정 텍스트 데이터 반환

다음 예에서는 pubs 데이터베이스의 pub_info 테이블에서 pub_id``0736과 연관된 text 열(pr_info)을 찾는 방법을 보여 줍니다. 먼저 지역 변수 @val을 선언하고 텍스트 포인터(긴 이진 문자열)를 @val로 설정한 다음 READTEXT 문에 대한 매개 변수로 제공합니다. 이 문은 5번째 바이트(오프셋 4)에서 시작하여 10바이트를 반환합니다.

USE pubs;  
GO  
DECLARE @val VARBINARY(16);  
SELECT @val = TEXTPTR(pr_info)   
FROM pub_info  
WHERE pub_id = '0736';  
READTEXT pub_info.pr_info @val 4 10;  
GO  

결과 집합은 다음과 같습니다.

pr_info                                                                                                                                                                                                                                                           
-----------------------------------------------------------------------  
 is sample  
(1 row(s) affected)  

참고 항목

DATALENGTH(Transact-SQL)
PATINDEX(Transact-SQL)
READTEXT(Transact-SQL)
SET TEXTSIZE(Transact-SQL)
텍스트 및 이미지 함수(Transact-SQL)
UPDATETEXT(Transact-SQL)
WRITETEXT(Transact-SQL)