2017-03-17 63 views
0

好像甲骨文比較運算符=和喜歡是區分大小寫的
不改變NLS_COMP: 是否有可能每個查詢添加提示,使它們不區分大小寫?甲骨文區分大小寫的比較運營商

something like: select /*IGNORE_CASE*/ from tab where val like '%noMatTer%' 

是否有可能在Oracle數據庫中引入/「教」/編寫新提示?
查詢層面上的任何事情都可以完成? (除了顯而易見的:WHERE upper(user_name)LIKE'%ME%')

+1

可能出現[Oracle中區分大小寫的搜索]的副本(http://stackoverflow.com/questions/5391069/case-insensitive-searching-in-oracle) – EvilTeach

回答

4

沒有提示。然而,新功能指南12C ...

不區分大小寫的數據庫 Oracle數據庫支持不區分大小寫的排序規則,如BINARY_CI或GENERIC_M_CI。通過將這種歸類應用於SQL操作,應用程序可以不區分數據語言的方式執行字符串比較並以不區分大小寫的方式進行匹配。利用新的Oracle Database 12c第2版(12.2)爲列聲明歸類的功能,您可以聲明一個列,以便始終以不區分大小寫的方式進行比較。如果未明確指定,則列排序規則將從表默認排序規則繼承,而該排序默認排序規則繼承自模式默認排序規則。這樣,您可以輕鬆地將數據庫中應用程序的所有字符列聲明爲不區分大小寫。

使用此功能,開發人員可以將數據聲明爲不區分大小寫,並且不必爲SQL語句添加明確的大寫操作。此功能簡化了從允許此類聲明的非Oracle數據庫系統遷移到Oracle數據庫的過程。

0

您是否考慮對查詢級補救使用lower()函數?

select * from tab where lower(val) like lower('%noMatTer%')