A SELECT statement always returns a result-set. A result set is a kind of table with column names and one row for each result.
You are looking for a string. So there is no need to query any non-textual column at all.
The 'from'-clause of the select has to be specified. You could query the metadata information of your database about all table names. Then obtain all columns which are textual (like char, varchar, clob, ...) to be used in the 'where'-clause. Then apply the constructed select on each table.
This algorithm could be expressed in a stored procedure or by any program.
What prevents you from dumping the database? On a UNIX system you could pipe the dump directly to the 'grep' command.