![]() |
1
2
用反斜杠转义所有特殊字符。大括号不能用于子字符串搜索,因为它们定义了完整的标记。例如,%{ello}%与标记“hello”不匹配 转义空格字符将包含在搜索标记中,因此搜索字符串'%stay\near\me%'将被视为文字字符串“stay near me”,并且不会调用'near'运算符。 如果要为短字符串(如名称等)编制索引,并且希望Oracle文本的行为与LIKE运算符完全相同,则必须编写自己的lexer,该lexer不会为单个单词创建标记。(很遗憾,catsearch不支持子字符串搜索…) 将搜索更改为使用Oracle文本的语义(具有标记匹配)可能是一个好主意,但对于某些应用程序,多个(短)标记和数字标记的通配符扩展将为搜索字符串创建太多的点击,而用户可以合理地预期其工作。 例如,如果索引数据中有大量数字标记,则搜索%i\am\number\9%很可能失败,因为在返回结果之前,必须搜索并合并以“i”结尾和以“9”开头的所有标记。 “i”和“am”可能也在默认的停止列表中,将被完全忽略,因此对于这个假设应用程序,如果这些标记很重要,则可以使用空的停止列表。 |
![]() |
2
0
使用
此外,上下文语法使用了许多运算符,包括符号和保留字,如within、near、about。这些都必须在输入中以某种方式转义。如果需要搜索子字符串,正确的转义方法是转义
全部的
字符
|
![]() |
3
-2
忘了消毒。为什么?参照 http://en.wikipedia.org/wiki/SQL_injection . 这取决于您使用的数据库接口api的类型。Perl DBI、ODBC、JDBC支持参数化查询或准备好的语句。如果你使用的是本地dbi,但它不支持它,那么上帝保佑你。 |
![]() |
maddy · 如何根据oracle SQL中的某一列值进行排名 2 年前 |
![]() |
kiric8494 · 显示以元音开头和结尾的城市名称 3 年前 |
![]() |
Franz Biberkopf · Oracle:组合子查询和聚合函数 3 年前 |
![]() |
BitLauncher · 甲骨文-如何模拟位列和布尔和/或? 3 年前 |
![]() |
Arifullah · 如何从oracle中的列中删除特定的初始字符? 3 年前 |
![]() |
Anar · Oracle SQL用户定义函数 3 年前 |
![]() |
user1312312 · 如何为一组表编写通用触发器? 3 年前 |