摘要:本文旨在介紹dws中存在的一些大小寫不敏感函式,介紹大小寫敏感guc引數設定的使用和對應大小寫敏感函式的結果展示。大小寫不敏感函式是指入參忽略大小寫的函式,此類函式的主要應用場景是字串的查詢。是否大小寫敏感會影響字串查詢的結果。
涉及到字串查詢的函式有locate函式、position函式、strpos函式。locate函式返回字串中子串第一次出現的位置。函式有兩種引數接收方式:
1.輸入被查詢子串和查詢字串,不包含查詢起始位置,預設從1開始。
2.輸入被查詢子串和查詢字串以及查詢初始位置。
若能查詢到子串,則返回其第一次出現的位置索引。若子串不在字串中,返回0。
position函式和strpos函式與locate函式功能相近,區別在於函式入參和使用形式。
這些字串處理函式是相容mysql中的字串處理函式。而mysql的字串處理函式在mysql預設情況下,是大小寫不敏感的,也就是說入參忽略大小寫情況進行查詢,而dws預設是大小寫敏感的。
eg:select locate(『pos』, 『postest』), locate(『pos』, 『postest』);
dws結果:
mysql結果:
在mysql中是通過底層設計實現入參大小寫不敏感的,但在dws的mysql相容性模式下,我們是通過設定guc引數:set beh**ior_compat_options=『case_insensitive』,可使這些字串處理函式入參大小寫不敏感,相容mysql場景。
根據結果可以看出,通過設定guc引數達到了預期入參字元大小寫不敏感的目的。但是目前比較侷限,無法通過核心全域性設定,使所有入參都能達到大小寫不敏感的目的。
點選關注,第一時間了解華為雲新鮮技術~
oracle設定字母大小寫不敏感對impdp無效
又雙叒叕遇到了喜聞樂見的字母大小寫bug 最近在新建專案的資料庫時候又遇到了字母大小寫的問題,首先新建oracle例項 opf2monitor 接著新建了表空間 pyac 然後新建了使用者 monitor kp123456 並賦予各種許可權,最後使用impdp命令 impdp monitor kp1...
MYSQL如何設定大小寫敏感
1 linux下mysql安裝完後是預設 區分表名的大小寫,不區分列名的大小寫 2 用root帳號登入後,在 etc my.cnf 中的 mysqld 後新增新增 lower case table names 1重啟mysql服務,這時已設定成功 不區分表名的大小寫 lower case table...
MYSQL如何設定大小寫敏感
linux系統下 1 linux下mysql安裝完後是預設 區分表名的大小寫,不區分列名的大小寫 2 用root帳號登入後,在 etc my.cnf 中的 mysqld 後新增新增lower case table names 1,重啟mysql服務,這時已設定成功 不區分表名的大小寫 lower c...