我使用以下查询查找数据库中的表名:
SELECT table_name
FROM user_tables
WHERE table_name LIKE 'APP_X_%'我想要的结果是:
APP_X_ABC
APP_X_DEF
APP_X_GHI我得到的结果是:
APP_XYZ
APP_X123
APP_X_ABC
APP_X_DEF
APP_X_GHI我只需要返回在X之后有下划线的表名,我做错了什么?
发布于 2017-11-27 16:55:09
您需要使用ESCAPE子句:
您可以使用转义子句在模式中包含实际字符%或_,该子句标识转义字符。如果转义字符先于模式中的字符%或_,那么Oracle将该字符按字面解释为模式,而不是一个特殊的模式匹配字符。还可以通过重复查找转义字符本身。
SELECT table_name
FROM user_tables
WHERE table_name LIKE 'APP!_X!_%' ESCAPE '!';DBFiddle演示
_被视为通配符(任何单个字符)。但您需要_作为文字。
https://stackoverflow.com/questions/47516011
复制相似问题