Yes, to get records their data type are only varchar2. That is what I want.

The reason I need this is I try to write a procedure to clean up them. The steps would be:

1. Get a view consists of all fields of varchar2 and char type.
2. Declare a cursor or ref cursor (I have not figured out yet).
3. Open cursor or ref cursor to traverse every field.
4. Parse and update every field.
5. Close cursor or ref cursor.

A part from the issue of data_type as query condition, another big problem is with the cursor or ref cursor.

Since I do not know the columns' name, all columns' name will work as parameter when deal with "update set where". This forces me to build a dynamic update query inside of procedure. The problem is neither cursor nor ref cursor would give me a location reference (where current of) of exact field the cursor/ref cursor works with. In other words, reference of cursor or ref cursor could not be passed into dynamic query.

So you get a bunch of columns. You are totally clueless of their names, their functional meaning, etc.
Then you have to update them. Update to what? What should be the new value of the third column in the fourth table?