網站首頁 編程語言 正文
1、查找特定字符串PATINDEX
語法與字符串的patindex一樣。
2、獲取文本指針TEXTPTR
SQLServer在存儲文本類型(ntext、text)和圖像數據類型(image)時,默認情況是與常見的基本數據類型(如char、int等)這樣的數據時單獨存儲的,也就是說,如果一個表中的字段有基本類型和圖像文本類型,那么在輸入數據時,基本類型和圖像文件數據并不是保存在同一個頁面上,而是分離存儲的。分離存儲后,那么基本類型數據和文本圖像類型數據所在的頁面就是通過文本指針建立聯系,是一個16字節的二進制類型指針。在基本類型數據頁面中存儲的就是這些指向數據的指針,這樣在需要的時候通過指針來操作文本和圖像數據。Textptr函數就可以用于獲得文本和圖像數據存儲的文本指針,這個指針獲得后就可以被操作文本和圖像數據的函數(writetext、readtext和updatetext等)進行操作。如果沒有有效的指針,文本和圖像函數是無法操作數據的。
語法結構:
textptr( column )
這里的column就是表中的文本和圖像數據列(text、ntext和image)名稱。
返回值:
varbinary類型16字節指針。
配合使用的函數:
在編寫含有TEXTPTR函數的T-SQL代碼時,下表所示的函數經常被使用。
- patindex('%pattern%',expression)
返回字符串在text或ntext列中的字符位置 - datalength(expression)
返回text、ntext和image列中數據的長度 - set textsize
- 返回對select語句所返回的text、ntext或image數據的限制(字節數)。settextsize 0表示不限制。
- substring(text_column,start,length)
返回二進制列中又指定的start偏移量和length指定的varchar類型的字符串。字符串的長度硬小于8kb
3、檢測文本指針是否有效TEXTVALID
textvalid函數用于檢測文本指針是否有效。
語法結構:
textvalid( 'table.column',text_ptr )
參數說明:
- table:表的名稱,必須包含
- column:表中的二進制數據列(text、ntext和image)名稱
- text_ptr:要檢測的文本指針
返回值:
int,如果指針有效返回1,否則分那會0。
4、讀取文本圖像列內容READTEXT
readtext函數用于讀取文本或圖像列的內容,按照指定的偏移量開始讀取指定字節數。如果是圖像列(image),這樣讀取的是字節數,而不是現實圖像本身。
語法結構:
readtext{ table.column text_ptr offset size } [holdlock]
參數說明:
- table:表名稱
- column:列名稱
- text_ptr:有效的文本指針,即16字節的binary數據。
- offset:開始讀取text、image類型數據之前,要跳過的字節數。讀取ntext類型數據之前要跳過的字符數。
- size:讀取的字節數(使用text或image數據類型時)或字符數(使用ntext數據類型時)。如果size為0,則讀取4KB數據。
- holdlock:使文本值被鎖定以進行讀取,直到十五結束為止。其他用戶可以讀取該值,但不能對其進行修改。
返回值:
varchar字符。
5、寫入文本圖像列內容WRITETEXT
writetext函數用于向文本或圖像寫入內容,同時可以選擇為最小日志記錄,這樣寫入操作產生的日志寫的I/O次數少,對數據庫性能影響小。
語法結構:
writetext{ table.column text_ptr } [ with log ] { data }
參數說明:
- table:表名稱
- column:列名稱
- text_ptr:有效的文本指針,即16字節的binary數據。
- with log:由數據庫的恢復模式來決定writetext操作產生的日志行為。因為text、ntext、imge類型的數據一般情況下都比較大。比如一幅圖片可能上百KB,我們知道一個數據頁面的容量是標準的8KB。所以一幅圖片很可能就需要幾時個甚至更多的數據頁面,所以writetext操作所產生的I/O次數是很多的,而過多的I/O次數將影響數據庫的性能。該參數的引入是交給數據庫的恢復模式來決定的writetext操作將產生的日志行為。當數據庫公仔在完全恢復模式時,產生的日志最多,因此對數據庫性能的影響也最大。當工作在簡單恢復模式時,產生的日志最少。
- data:要存儲的text、ntext或image類型的數據。writetext以交互方式插入的最大文本長度約為120KB。
6、更新文本圖像列內容UPDATETEXT
updatetext函數更新文本或圖像列中的內容。與writetext的區別在于該函數可以僅更新列中的一部分,而writetext是更新整個列。
語法結構:
updatetext{ table.name.dest_column_name dest_text_ptr }
{ null | insert_offset }
{ with log }
{ inserted_data | { table.name.src_column_name src_text_ptr } }
參數說明:
- table_name:表名稱。
- dest_column_name:列名稱。
- dest_text_ptr:有效的文本指針,即16字節的binary數據。
- insert_offset:以0為基礎的更新其實位置,對于Text或image列,insert_offset是在插入新數據前要從現有列的起點跳過的字節數。對于ntext列,insert_offset是字符數(每個ntext字符占用2個字節)。從此基數為零的起始點開始的現有text、ntext或image數據向右移,為新數據留出空間。值為0表示將新數據插入現有數據的開始處。值為null則將新數據追加到享有數據值后。
- delete_length:從insert_offset位置開始、要從現有text、ntext、或image列中刪除的數據長度。delete_length值對于text和image列用字節指定,對于ntext列用字符指定。每個ntext字符占用2個字節。值為0表示不刪除數據。值為null則刪除現有text或image列中從insert_offset位置開始到末尾的所有數據。
- withlog:日子記錄由數據庫的當前模式決定。
- inserted_date:要插入現有text、ntext或image列的insert_offset位置的數據。這是單個char、nchar、varchar、nvarchar、binary、varbinary、text、ntext或image值。inserted_data可以是文字或變量。
- table_name.src_column_name:用作插入數據源的表或text、ntext、image列的名稱。
- src_text_ptr:指向用作插入數據源的text、ntext或image列的文本指針值,通常使用textptr函數獲得。
原文鏈接:https://www.cnblogs.com/springsnow/p/9881474.html
相關推薦
- 2023-02-02 python保留兩位小數的3種方法實例_python
- 2022-10-03 React在定時器中無法獲取狀態最新值的問題_React
- 2022-10-22 Python構建簡單線性回歸模型_python
- 2022-05-14 c++與python實現二分查找的原理及實現_C 語言
- 2022-07-12 mongoDB替換replace某個字段的部分內容
- 2022-06-18 使用OpenGL創建窗口的示例詳解_C 語言
- 2022-11-01 C語言strlen,strcpy,strcmp,strcat,strstr字符串操作函數實現_C 語
- 2022-11-04 深入了解Python中Lambda函數的用法_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支