Vous pouvez le faire avec une seule requête même si c'est un peu compliqué. Cette requête recherchera toutes les colonnes CHAR et VARCHAR2 dans le schéma actuel pour la chaîne 'JONES'
select table_name,
column_name
from( select table_name,
column_name,
to_number(
extractvalue(
xmltype(
dbms_xmlgen.getxml(
'select count(*) c from ' || table_name ||
' where to_char(' || column_name || ') = ''JONES'''
)
),
'ROWSET/ROW/C'
)
) cnt
from (select utc.*, rownum
from user_tab_columns utc
where data_type in ('CHAR', 'VARCHAR2') ) )
where cnt >= 0
Notez qu'il s'agit d'une version adaptée de la requête de Laurent Schneider pour compter les lignes de chaque table avec une seule requête.