2012-01-20 2 views
0

Есть ли способ поиска базы данных Oracle (какое-то регулярное выражение, которое я подозреваю), чтобы найти неизвестные символы (которые часто отображаются как □ □)?Поиск неизвестных символов в базе данных Oracle

+0

Если ваша система поддерживает только стандартные символы ASCII, то вы могли бы искать свою базу данных для поиска для персонажей, чей код меньше 32 или больше 255, например. Коды символов ASCII можно найти в этой [ссылке] (http://www.asciitable.com/). EDIT: вы также можете применить тот же принцип, если работаете с другим набором символов, например UNICODE. – Felipe

ответ

0

Нет стандартного способа поиска по всей базе данных Oracle. Вам понадобится утомительный скрипт, который просматривает различные типы объектов Oracle в dba_objects, а затем опускается в каждый (для тривиального примера, если объектом является таблица, вам нужно проанализировать столбцы, а если столбец содержит символьные данные, REGEXP_LIKE , но есть больше типов объектов, например пакет - вы тоже хотите искать литералы пакета?). Вместо этого я сделаю вручную явный список запросов по таблицам и столбцам.

+0

Я вижу проблему, но я просто хочу найти таблицу. Извините, должен был указать. – JackalopeZero

0

попробовать что-то вроде этого:

select co11, ... 
from tab1 
where col1 like '%'||chr(9)||'%' -- ascii code for tab 
    or col1 like '%'||chr(20)||'%' -- ascii code for newline 
--... 
; 
Смежные вопросы