在Oracle中,如何选择包含特定数值范围内的字符的行?

ben*_*hsu 3 regex oracle

我在Oracle中有一个表,其中包含一个名为DESCRIPTION的VARCHAR列.某些行包含不可打印的字符,例如数字值为150的字符(不是在Latin-1中,而是Unicode中的"受保护区域起点").

我想选择其描述列包含数字值介于128和160之间的字符的所有行.有没有办法在没有长列的LIKE子句的情况下执行此操作?我想可以用正则表达式来完成,但我还没有找到办法.

Ton*_*ews 5

我最近必须做一些非常类似的事情并使用这样的SQL:

with codes as (select rownum code from dual connect by level <= 160)
select distinct t.id, t.description
from mytable t, codes c
where t.description like '%' || chr(c.code) || '%'
and c.code >= 128;
Run Code Online (Sandbox Code Playgroud)