textptr (Transact-sql)
Döner metin işaretçisi değeri karşılık gelen bir text, ntext, ya imagesütununda varbinarybiçimi. Alınan metin işaretçisi değeri readtext, WRITETEXT ve updatetext deyimleri kullanılır.
Önemli |
---|
Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.Alternatif işlevselliği kullanılamaz. |
Transact-SQL Sözdizim Kuralları
Sözdizimi
TEXTPTR ( column )
Bağımsız değişkenler
- column
İse text, ntext, ya imagekullanılacak sütun.
Dönüş Türleri
varbinary
Açıklamalar
De SQL Server 2005ve satır metin, tablolar için sonraki sürümlerinde textptr işlenecek metin için bir tanıtıcı döndürür. Metin değeri null olduğunda bile geçerli metin imleci elde edebilirsiniz.
De SQL Server 2005ve sonraki sürümleri, görünümler sütunları textptr işlevi kullanamazsınız. Yalnızca tabloları sütunlar üzerinde kullanabilirsiniz. Bir sütun görünümü textptr işlevi kullanmak için önce uyumluluk düzeyi 80 kullanarak ayarlamalısınız alter database uyumluluk düzeyi. Tablo satır metin yoksa ve eğer bir text, ntext, ya imagesütun updatetext deyimi tarafından başlatılmamış, textptr işlevi bir null işaretçi.
TEXTVALID bir metin imleci var olup olmadığını sınamak için kullanın. updatetext, WRITETEXT veya readtext geçerli metin imleci kullanamazsınız.
Çalışırken bu işlevleri ve deyimleri de yararlıdır text, ntext, ve imageveri.
İşlev veya deyimi |
Açıklama |
---|---|
PATINDEX('%pattern%' , expression) |
' De belirtilen karakter dizesinin karakter konumunu verir textya ntextsütun. |
VERIUZUNLUĞU(expression) |
Veri uzunluğunu döndürür text, ntext, ve imagesütun. |
SET TEXTSIZE |
Sınırı, bayt cinsinden döndürür text, ntext, ya imageveri bir select deyimi ile iade edilecek. |
SUBSTRING(text_column, start, length) |
Döner bir varcharbelirtilen dize ile belirtilen startuzaklığı ve length. Uzunluğu az 8 kb olmalıdır. |
Örnekler
[!NOT]
Aşağıdaki örneklerde çalıştırmak için önce yüklemeniz gerekir pub veritabanı.
A.textptr kullanma
Aşağıdaki örnek TEXTPTRfonksiyonu bulmak için Resim sütun logoile ilgili New Moon Booksde pub_infotablo pubsveritabanı. Metin imleci yerel değişken konur@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
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 satır metin kullanma
De SQL Server, satır metin imleci hareket içinde aşağıdaki örnekte gösterildiği gibi kullanılması gerekir.
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
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.Metin veri döndürme
Aşağıdaki örnek seçer pub_idsütun ve 16 baytlık metin işaretçisi, pr_infosütundan pub_infotablosu.
USE pubs
GO
SELECT pub_id, TEXTPTR(pr_info)
FROM pub_info
ORDER BY pub_id
GO
USE pubs
GO
SELECT pub_id, TEXTPTR(pr_info)
FROM pub_info
ORDER BY pub_id
GO
Sonuç kümesi buradadır.
pub_id
------ ----------------------------------
0736 0x6c0000000000feffb801000001000100
0877 0x6d0000000000feffb801000001000300
1389 0x6e0000000000feffb801000001000500
1622 0x700000000000feffb801000001000900
1756 0x710000000000feffb801000001000b00
9901 0x720000000000feffb801000001000d00
9952 0x6f0000000000feffb801000001000700
9999 0x730000000000feffb801000001000f00
(8 row(s) affected)
pub_id
------ ----------------------------------
0736 0x6c0000000000feffb801000001000100
0877 0x6d0000000000feffb801000001000300
1389 0x6e0000000000feffb801000001000500
1622 0x700000000000feffb801000001000900
1756 0x710000000000feffb801000001000b00
9901 0x720000000000feffb801000001000d00
9952 0x6f0000000000feffb801000001000700
9999 0x730000000000feffb801000001000f00
(8 row(s) affected)
Aşağıdaki örnekte ilk dönmek gösterilmiştir 8000textptr kullanmadan metin bayt.
USE pubs
GO
SET TEXTSIZE 8000
SELECT pub_id, pr_info
FROM pub_info
ORDER BY pub_id
GO
USE pubs
GO
SET TEXTSIZE 8000
SELECT pub_id, pr_info
FROM pub_info
ORDER BY pub_id
GO
Sonuç kümesi buradadır.
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)
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.Belirli bir metni veri döndürme
Aşağıdaki örnek bulur textsütunu (pr_info) ile ilişkili pub_id 0736de pub_infotablo pubsveritabanı. İlk yerel değişken bildirir @val. Metin imleci (uzun ikili dize) sonra içine konur @valve parametre olarak verilen READTEXTdeyimi. Bu 10 beşinci bayt (konum 4) başlangıç bayt döndürür.
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
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
Sonuç kümesi buradadır.
pr_info
-----------------------------------------------------------------------
is sample
(1 row(s) affected)
pr_info
-----------------------------------------------------------------------
is sample
(1 row(s) affected)