如何在Oracle中定义默认转义字符?

时间:2014-12-29 12:10:59

标签: oracle escaping

我有桌子

id  name
__________
1   name1
2   name2
3   _name3

我要选择所有以' _'开头的名字。字符。

SELECT name FROM table1 WHERE name like '_%'

但是此查询返回表中的所有行。也许有人知道这个问题的一些解决方案(不使用ESCAPE关键字)?或者,是否有机会在Oracle中设置默认转义字符?

3 个答案:

答案 0 :(得分:3)

显然,you cannot

char1 [ NOT ] { LIKE | LIKEC | LIKE2 | LIKE4 }
  char2 [ ESCAPE esc_char ]
     

[...]
  如果未指定esc_char,则没有默认转义   字符

答案 1 :(得分:1)

  

我想选择以' _'开头的所有名字。字符。

使用SUBSTR

SQL> WITH DATA AS(
  2  SELECT 1 ID, 'name1' NAME FROM dual UNION ALL
  3  SELECT 2,   'name2' FROM dual UNION ALL
  4  SELECT 3 , '_name3' FROM dual
  5  )
  6  SELECT * FROM DATA
  7  WHERE substr(NAME, 1, 1) = '_'
  8  /

        ID NAME
---------- ------
         3 _name3

SQL>

答案 2 :(得分:1)

试试这个..

select * from table1 where regexp_like (name,'^_') ;