Regex 在Oracle数据库中搜索未知字符

Regex 在Oracle数据库中搜索未知字符,regex,oracle,Regex,Oracle,有没有办法搜索Oracle数据库(我怀疑是某种正则表达式)来查找未知字符(通常显示为□ □)? 没有搜索整个Oracle数据库的标准方法。您需要一个冗长的脚本,它遍历dba_对象中的各种类型的Oracle对象,然后下降到每个对象中(对于一个简单的例子,如果一个对象是一个表,则需要解析列,如果一个列包含字符数据,则类似于REGEXP_;但是有更多类型的对象,例如一个包-是否也要搜索包的文本?)。我会手动创建一个表和列查询的显式列表。尝试以下操作: select co11, ... from tab

有没有办法搜索Oracle数据库(我怀疑是某种正则表达式)来查找未知字符(通常显示为□ □)?

没有搜索整个Oracle数据库的标准方法。您需要一个冗长的脚本,它遍历dba_对象中的各种类型的Oracle对象,然后下降到每个对象中(对于一个简单的例子,如果一个对象是一个表,则需要解析列,如果一个列包含字符数据,则类似于REGEXP_;但是有更多类型的对象,例如一个包-是否也要搜索包的文本?)。我会手动创建一个表和列查询的显式列表。

尝试以下操作:

select co11, ...
from tab1
where col1 like '%'||chr(9)||'%'  -- ascii code for tab
   or col1 like '%'||chr(20)||'%' -- ascii code for newline
--...
;

如果您的系统仅支持标准ASCII字符,则您可以搜索数据库以查找代码小于32或大于255的字符(例如)。您可以在此中找到ASCII字符代码。编辑:如果您正在使用另一个字符集(如UNICODE),您也可以应用相同的原则。我发现了问题,但我只想搜索一个表。对不起,应该指定。