I had the same problem and the conclusion i've is there is some problem OCI functions have with the "character set" defined in Oracle,check
"select * from nls_database_parameters" - logged in as system user in oracle
and check
NLS_CHARACTERSET (i've WE8ISO8859P9)
NLS_NCHAR_CHARACTERSET (i've WE8ISO8859P9)
and these are single byte/ASCII sets,
now i've another database with same nls parameters defined as US7ASCII and they work fine for OCIFETCH/OCIRESULT
but the previous case fails (if the length of the string stored in database is more than half of that defined - i.e if u have varchar2(20) and the string in DB is of length 8 - OCIFETCH would retrive it, but if length > 10, it would show blank....such frustrating problem !!!!)
anyway, there is no way u can change character set for DB once u've created it ...
one way to solve might me - recreate the DB or define the table columns with more width than necessary...
anyway..i'm not happy with OCI support of PHP for Oracle in general...
the PHP - ORA functions work well for the same case !!!!
best,
may this help u...
-ashish