BDE Memo/String field problems???!

Ok here is the problem:
A function in Oracle returns a string... the BDE does not know how long
this string is (20 chars long for what it is worth), therefore it
presents it as a memo field. This is not good at all!!! I tried to sub
string this returned value in a query out of the memo to force it to be
20 long... this works in BDE versions prior to 5.x.

Is there any way to make the BDE see a string as a string and not a
memo? Working with memos is in general a pain, but much more so when the
  fields are not supposed to be memos, and more so if the resulting data
set return much more rows as the BLOBS_TO_CACHE is set to. Increasing
the blobs to cache every time there is more records is not an option,
and if you don't then you can only use the records in the data set in a
sequential manner otherwise it is "Invalid Blob handle" time.

Any help will be VERY, VERY kind!