數倉如何設定大小寫不敏感函式

2022-10-09 05:24:12 字數 1377 閱讀 6745

摘要:本文旨在介紹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...