Yes, NCOCI8 has issues. There you can find complete list of NCOCI8 bugs, know for us for today. As they current status and workaround, if exists.
| NOB1 | basic functionality failure | Closed | Access violation if TOCIQuery.FetchParams.RowsetSize > 2 for query, that select BLOB fields. | NCOCI8 automatically sets RowsetSize to 2 if rowset contains BLOB fields |
| NOB2 | not critical | Open | TOCIStoredProc can't describe param's for some complex (have a lot table/record types and a lot of proc's) PL/SQL packages. | Split PL/SQL package into several of small sizes |
| NOB3 | slow | Open | Property editor for TOCIStoredProc.OProcedureName is very slow when you have small number of server buffers. | Set proper size of db_block_buffers. |
| NOB4 | non-critical | Open | For data types with fixed length (e.g. otFloat, otInteger), it is possible to change Size, but this must be IMPOSSIBLE. | Do not change value of Size property for that data types. |
| NOB5 | slow | Open | Current implementation of filters use VARIANT type for expression evaluation, that may be slow | No |
| NOB6 | slow | Closed | Current implementation of TOCIDatabase: StartWait, EndWait not use timeout's, it may results in performance loss | Set TOCIDatabase.WaitCursor to crDefault |
| NOB7 | basic functionality failure | Closed | Exec of PL/SQL procedure with OUT param of type PL/SQL table raise: | You can't assign table element with 0 index, if that table is bind variable. Change algorithm to use indexes from 1 |
| NOB8 | non-critical | Closed | otBCD/ftBCD does not work | Set TOCIDataSet.DataFormat.EnableBCD = False |
| NOB9 | non-critical | Open | If we have started Global TX, open OCI data set, then change active TX to other Global TX, after that fetch will raise ORA-01002 fetch out of sequence | 1) Fetch all from dataset before changing active TX. 2) Close dataset before changing active TX and reopen it after. 3) May be sufficient is only do refresh after changing active TX. |
| NOB10 | non-critical | Closed | Can't edit querys with ORDER BY | 1) Use Oracle server v 8.1.5 - in that case You can edit result set with ORDER BY clause. 2) Use TOCIUpdateSQL.TableName property. 3) Exclude ORDER BY from query. |
| NOB11 | limitation | Closed | Relation between TOCIDataSet edit methods and TOCITransMgr now is not implemented. | Use explicit transaction control. |
| NOB12 | basic functionality failure | Closed | select * from sys.tab$ hangs up a application | Set TOCIQuery.FetchParams.InrecDataSize = 4000. |
| NOB13 | non-critical | Closed | After editing/inserting and posting record, it change their location in result set. Bookmark are still valid. | No |
| NOB14 | basic functionality failure | Closed | Can only read BLOB/CLOB/BFILE, not update. | No |
| NOB15 | non-critical | Open | Can't edit querys with BLOB's - error table not found | Use TOCIUpdateSQL.TableName property |
| NOB16 | basic functionality failure | Open | Sometimes after editing BLOB fields and refreshing/close/open TOCIQuery - AV | No |
| NOB17 | non-critical | Open | Set TOCIDataSet.CachedUpdates = True, edit dataset, call TOCIDataSet.ApplyUpdates, then repeat dataset editing (the allready edited record), call TOCIDataSet.ApplyUpdates - NOE172/UPS | After call of ApplyUpdates, call CommitUpdates. |