SQL Server使用英文字符串的匹配的時候默認是忽略大小寫的,這樣用起來是比較方便的,如果想不忽略大小寫也可以修改配置,但是Oracle好像不能忽略大小寫,在進行字符串匹配的時候就比較麻煩了。那么該怎么解決大小寫敏感的問題,把需要的數據都查詢出來呢?最常見的辦法就是把查詢的參數和字段中的內容都轉化成大寫或者都轉化成小寫,這樣就可匹配了。
比如如下的查詢:
select * from hr.EMPLOYEES t
where upper(first_name)=upper('john')
但是這樣會存在一個問題,就是這個SQL查詢無法用到字段上的索引,如果對first_name建立了索引,這個查詢將會對表進行表掃描,而不使用索引。如果數據量大的情況下,這將是一個非常嚴重的性能問題。
解決辦法就使用Oracle中的“函數索引”,對first_name的大寫建立索引,代碼如下:
create index hr.employees_first_name on hr.employees(upper(first_name))
由于最近在用Oracle,之前一直用的是SQL Server,對Oracle不是特別熟悉,所有這篇文章也沒有什么技術含量,純粹是為自己記錄而已。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
