当前位置: 首页 > 编程笔记 >

如何在Oracle中执行不区分大小写的搜索?

缪修德
2023-03-14
本文向大家介绍如何在Oracle中执行不区分大小写的搜索?,包括了如何在Oracle中执行不区分大小写的搜索?的使用技巧和注意事项,需要的朋友参考一下

问题:

您要在Oracle中执行不区分大小写的搜索。

处理案例问题的一种方法是使用内置的UPPER和LOWER函数。这些函数使您可以强制单个操作对字符串进行大小写转换

示例

DECLARE
   full_name1  VARCHAR2(30) := 'roger federer';
   full_name2   VARCHAR2(30) := 'ROGER FEDERER';
BEGIN
   IF LOWER(full_name1) = LOWER(full_name2) THEN
       DBMS_OUTPUT.PUT_LINE( full_name1 || ' and ' || full_name2 || ' are the same.');
   END IF;
END;

在上面的示例中,将full_name1和full_name2首先转换为LOWER CASE,然后将它们相互比较,从而得到输出

roger federer和ROGER FEDERER是相同的。

UPPER和LOWER函数的一个缺点是性能。应用于字段的任何功能都会降低性能。

从Oracle Database 10g第2版开始,您可以使用初始化参数NLS_COMP和NLS_SORT来使所有字符串比较不区分大小写。

我们需要将NLS_COMP参数设置为LINGUISTIC,这将告诉数据库使用NLS_SORT进行字符串比较。然后,我们将NLS_SORT设置为不区分大小写的设置,例如BINARY_CI。

默认情况下,NLS_COMP设置为BINARY。我们可以使用LEAST函数来查看大写字符是否比小写字符低。

示例

SELECT LEAST ('ROGER FEDERER','roger federer') FROM dual;

上面的SQL返回“ ROGER FEDERER”,告诉我们大写字母排序低于小写字母。

现在,我们将设置几个参数。

    list-paddingleft-2">
  1. 设置NLS_COMP以指定该语言排序。

  2. 设置NLS_SORT以指定所需的排序规则。

示例

ALTER SESSION SET NLS_COMP=LINGUISTIC
ALTER SESSION SET NLS_SORT=BINARY_CI

在为会话设置上述设置后,我们将再次打电话给LEAST至少一次,以查看返回的内容。

示例

 SELECT LEAST ('ROGER FEDERER','roger federer') FROM dual;

输出结果

roger federer

最后,我们将调用上面的pl / sql块,而无需应用UPPER和LOWER函数来比较字符串。

示例

DECLARE
   full_name1  VARCHAR2(30) := 'roger federer';
   full_name2   VARCHAR2(30) := 'ROGER FEDERER';
BEGIN
   IF full_name1 = full_name2 THEN
       DBMS_OUTPUT.PUT_LINE( full_name1 || ' and ' || full_name2 || ' are the same.');
   END IF;
END;

roger federer和ROGER FEDERER是相同的。

设置将一直保留,直到您关闭会话。

 类似资料:
  • 问题内容: 和其他比较运算符等的默认行为区分大小写。 是否可以使它们不区分大小写? 问题答案: 从10gR2开始,Oracle允许通过设置和会话参数来微调字符串比较的行为: 您还可以创建不区分大小写的索引: 该信息来自Oracle不区分大小写的搜索。文章提到了,但似乎也适用于旧版本。 在10gR2之前的版本中,这实际上是做不到的,如果不需要 区分重音符号的 搜索,通常的方法是只对列和搜索表达式都使

  • 问题内容: 我有一个Lucene索引,该索引当前区分大小写。我想添加的 选项 有不区分大小写作为后备的。这意味着与案例匹配的结果将获得更大的权重,并且将首先出现。例如,如果结果数限制为10,并且有10个匹配项符合我的情况,那就足够了。如果仅找到7个结果,则可以从不区分大小写的搜索中再添加3个结果。 我的案子实际上更复杂,因为我有不同重量的物品。理想情况下,匹配“错误”的表壳会增加一些重量。不用说,

  • 问题内容: 这是场景。 这将返回一个字符串,其中所有单词均为小写,当然为红色。我的要求是使用与原始字符串相同的大小写作为String,但应具有Font标记。 是否有可能做到这一点 ? 问题答案: 您可以使用反向引用。就像是:

  • 问题内容: 我有一个需要在JavaScript中排序的字符串数组,但不区分大小写。如何执行呢? 问题答案: 在(几乎:)单线 导致 而 结果是

  • 问题内容: 我正在尝试使用JavaScript中的两个字符串进行不区分大小写的搜索。 通常情况如下: 该标志将不区分大小写。 但是我需要搜索第二个字符串。没有标志,它可以完美地工作: 如果我在上面的示例中添加标志,它将搜索searchstring而不是变量“ searchstring”中的内容(下一个示例不起作用): 我该如何实现? 问题答案: 是的,使用而不是。调用的结果将返回匹配自身的实际字符

  • 问题内容: 我尝试在elasticsearch.yml文件中创建一个条目,以针对要点中提到的内容创建自定义分析器: https //gist.github.com/1403902 但我得到以下错误 我仍然不知道如何做到这一点。我已经在stackoverflow上搜索了相同的内容,并得到了类似的回复(如上述要点所述) 请给我一个例子,我可以测试。 问题答案: 由于配置文件在启动时是只读的,因此要使更