Fungsi Teks dan Gambar - TEXTPTR (Transact-SQL)
Berlaku untuk: SQL Server Azure SQL Managed Instance
Mengembalikan nilai penunjuk teks yang sesuai dengan kolom teks, ntext, atau gambar dalam format varbinary . Nilai penunjuk teks yang diambil dapat digunakan dalam pernyataan READTEXT, WRITETEXT, dan UPDATETEXT.
Penting
Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Fungsionalitas alternatif tidak tersedia.
Sintaks
TEXTPTR ( column )
Argumen
column
Adalah kolom teks, ntext, atau gambar yang akan digunakan.
Jenis Kembalian
varbinary
Keterangan
Untuk tabel dengan teks dalam baris, TEXTPTR mengembalikan handel untuk teks yang akan diproses. Anda bisa mendapatkan penunjuk teks yang valid meskipun nilai teks null.
Anda tidak dapat menggunakan fungsi TEXTPTR pada kolom tampilan. Anda hanya dapat menggunakannya pada kolom tabel. Untuk menggunakan fungsi TEXTPTR pada kolom tampilan, Anda harus mengatur tingkat kompatibilitas ke 80 dengan menggunakan Tingkat Kompatibilitas ALTER DATABASE. Jika tabel tidak memiliki teks dalam baris, dan jika kolom teks, ntext, atau gambar belum diinisialisasi oleh pernyataan UPDATETEXT, TEXTPTR mengembalikan pointer null.
Gunakan TEXTVALID untuk menguji apakah penunjuk teks ada. Anda tidak dapat menggunakan UPDATETEXT, WRITETEXT, atau READTEXT tanpa penunjuk teks yang valid.
Fungsi dan pernyataan ini juga berguna saat Anda bekerja dengan data teks, ntext, dan gambar .
Fungsi atau pernyataan | Deskripsi |
---|---|
PATINDEX('%pattern%' , ekspresi) | Mengembalikan posisi karakter string karakter tertentu dalam kolom teks atau ntext . |
DATALENGTH(ekspresi) | Mengembalikan panjang data dalam kolom teks, ntext, dan gambar . |
SET TEXTSIZE | Mengembalikan batas, dalam byte, dari data teks, ntext, atau gambar yang akan dikembalikan dengan pernyataan SELECT. |
SUBSTRING(text_column, start, length) | Mengembalikan string varchar yang ditentukan oleh offset dan panjang mulai yang ditentukan. Panjangnya harus kurang dari 8 KB. |
Contoh
Catatan
Untuk menjalankan contoh berikut, Anda harus menginstal database pub .
J. Menggunakan TEXTPTR
Contoh berikut menggunakan TEXTPTR
fungsi untuk menemukan kolom logo
gambar yang terkait dengan New Moon Books
dalam pub_info
tabel pubs
database. Penunjuk teks dimasukkan ke dalam variabel lokal @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. Menggunakan TEXTPTR dengan teks dalam baris
Di SQL Server, penunjuk teks dalam baris harus digunakan di dalam transaksi, seperti yang ditunjukkan dalam contoh berikut.
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. Mengembalikan data teks
Contoh berikut memilih pub_id
kolom dan penunjuk pr_info
teks 16 byte kolom dari pub_info
tabel.
USE pubs;
GO
SELECT pub_id, TEXTPTR(pr_info)
FROM pub_info
ORDER BY pub_id;
GO
Berikut set hasilnya.
pub_id
------ ----------------------------------
0736 0x6c0000000000feffb801000001000100
0877 0x6d0000000000feffb801000001000300
1389 0x6e0000000000feffb801000001000500
1622 0x700000000000feffb801000001000900
1756 0x710000000000feffb801000001000b00
9901 0x720000000000feffb801000001000d00
9952 0x6f0000000000feffb801000001000700
9999 0x730000000000feffb801000001000f00
(8 row(s) affected)
Contoh berikut menunjukkan cara mengembalikan byte teks pertama 8000
tanpa menggunakan TEXTPTR.
USE pubs;
GO
SET TEXTSIZE 8000;
SELECT pub_id, pr_info
FROM pub_info
ORDER BY pub_id;
GO
Berikut set hasilnya.
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. Mengembalikan data teks tertentu
Contoh berikut menemukan kolom () yang text
terkait dengan pub_id``0736
dalam pub_info
tabel pubs
database.pr_info
Ini pertama-tama mendeklarasikan variabel @val
lokal . Penunjuk teks (string biner panjang) kemudian dimasukkan ke dalam @val
dan disediakan sebagai parameter ke READTEXT
pernyataan. Ini mengembalikan 10 byte yang dimulai pada byte kelima (offset 4).
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
Berikut set hasilnya.
pr_info
-----------------------------------------------------------------------
is sample
(1 row(s) affected)
Lihat Juga
DATALENGTH (Transact-SQL)
PATINDEX (Transact-SQL)
READTEXT (Transact-SQL)
MENGATUR TEXTSIZE (Transact-SQL)
Fungsi Teks dan Gambar (Transact-SQL)
UPDATETEXT (Transact-SQL)
WRITETEXT (T-SQL)