ORACLE 正则表达式 不包含 一个字符串的表达式怎么写?比如  SELECT T.*, T.ROWID
  FROM TMP_TAB T
 WHERE regexp_like(CODE, '.*(!0791).*'); (该表达式错误) 不包含0791这个字符串的任意字符串?怎么写?在线等

解决方案 »

  1.   

    WITH T AS(
    SELECT 'MSRITJDLS' AS CODE FROM DUAL
    UNION
    SELECT '215DJFE0791DJEI' FROM DUAL
    UNION 
    SELECT 'DIEN213DJEI' FROM DUAL
    UNION 
    SELECT '0FFR0791DJEI' FROM DUAL
    )
    SELECT * FROM T 
    WHERE INSTR(CODE,'0791')=0;
    结果如下:
    WITH T AS(
    SELECT 'MSRITJDLS' AS CODE FROM DUAL
    UNION
    SELECT '215DJFE0791DJEI' FROM DUAL
    UNION 
    SELECT 'DIEN213DJEI' FROM DUAL
    UNION 
    SELECT '0FFR0791DJEI' FROM DUAL
    )
    SELECT * FROM T 
    WHERE INSTR(CODE,'0791')=0;
      

  2.   

    CODE            
    --------------- 
    DIEN213DJEI     
    MSRITJDLS       
      

  3.   

    这种? WHERE not regexp_like(CODE, '0791')