I believe you’re using a DbParameter typed parameter in the PassthruRdbQuery. You must use the RdbParameter type via ParameterizedSql instead for remoting PassthruRdbQuery. See RdbParameter’s help:
/// <remarks>
/// An <b>RdbParameter</b> is essentially a <see cref="DbParameter"/> that is marshalled by
/// value rather by reference when passed to a remote Business Object Server. The remoting channel
/// used by the client does not allow two-way communication with the remote server, which a
/// DbParameter as a MarshalByRefObject requires.
/// <para>
/// Use an <b>RdbParameter</b> when adding parameters to a <b>StoredProcRdbQuery</b> or
/// <b>PassthruRdbQuery</b>.
/// </para>
/// </remarks>
Try this for your query and see if it works.
RdbKey key = (RdbKey)mPm.GetDataSourceKey(typeof(DB_PERSONS));
string lastName = "LAST_NAME";
string parmName = key.AdoHelper.FormatParameterName(lastName);
RdbParameter param = new RdbParameter(parmName, DbType.String);
param.Value = "Anacker1%";
string select = String.Format(
"select * from \"DB_ADM\".\"DB_PERSONS\"" +
" where ((id <> 0) and (upper({0}) like upper({1}))) and (ROWNUM <= 500)",
lastName, parmName);
ParameterizedSql sql = new ParameterizedSql(select, param);
PassthruRdbQuery query = new PassthruRdbQuery(typeof(DB_PERSONS), sql);
Let us know the result. Thanks