Ticket #11 (new enhancement)
Improvements to the Oracle adapter
| Reported by: | kmeirlaen | Owned by: | somebody |
|---|---|---|---|
| Priority: | important | Milestone: | 2.2 |
| Component: | Database adapter | Version: | |
| Keywords: | oracle, database | Cc: |
Description
To be added, in Zcodo framework, the Oracle Adapter. The Oracle adapter has been tested from July 2007 and it is used in some production applications. It is available as external file (from the Qcodo site) but it should be integrated with the tar ball of Zcodo.
The Oracle adapter comes with a script called “Oracle Tools for Qcodo/Zcodo?”. This script can generate the auto-incremental field needed by Zcodo for its CRUD functions. The auto-incremental creates a sequence and a trigger called TABLE_NAME_SEQ and a trigger TABLE_NAME_TRG.
—-
It’s worth noting that the Oractle adapter is not compatible with large column types, such as Text due to the way QCodo’s DB adapters are designed, and the design of the OCI8 PHP module.
—
The OCI8 plugin (and possibly oracle itself) have a string length limit in SQL statements.
I’m afraid it’s been a while since I ran into this, so I’m fuzzy on the details, but I believe it ran something like this:
SQL statements are limited to VarChar?2 length (4000 char, I think)
CLOB and other larger datatypes are not supporeted using the standard SQL, and instead have special OCI8 functions for handling them.
Since QQ and custom queries are all database independant, they aren’t designed to use those special functions.
The only way to “fix” this is to prevent users from writing raw SQL, update all the database adapters with functions and a query structure to support these special types of functions, then update QQ to use those functions rather than using raw SQL.
—
Another example is that Oracle is case sensitive using the LIKE SQL operator. I had to use custom SQL. As you said any adapter should be modified. My big problem is just that I do not know how Zcodo data types works and a clear correspondance between db data types and Zcodo data type.
