SQL搜索字符串中的特定值

nor*_*ole 1 sql string oracle search

我需要在Oracle数据库中找到具有与特定单词匹配的属性的所有表.所以例如我正在使用:

SELECT TABLE_NAME
     , COLUMN_NAME
  FROM USER_TAB_COLUMNS
 WHERE UPPER(COLUMN_NAME) LIKE '%ING%' 
Run Code Online (Sandbox Code Playgroud)

返回:

TABLE1 ING
TABLE2 THIS_ING
TABLE3 ING_FIRST
TABLE5 TESTING
Run Code Online (Sandbox Code Playgroud)

我只想从TABLE1,TABLE2和TABLE3返回结果.当它只是像TESTING这样的字符串的一部分时,我不想要匹配.

我似乎无法得到我需要的东西.

Dan*_* A. 8

您可以使用正则表达式来查找所需内容:

SELECT TABLE_NAME
     , COLUMN_NAME
  FROM USER_TAB_COLUMNS
 WHERE regexp_like (column_name, '(^|(_)+)ING((_)+|$)')
Run Code Online (Sandbox Code Playgroud)

这将为您提供ING前面有行开头或1个或更多下划线,然后是行尾或1个或更多下划线的列.