View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0010996 | mantisbt | db oracle | public | 2009-10-03 15:19 | 2015-03-16 19:20 |
Reporter | watergad | Assigned To | dregad | ||
Priority | normal | Severity | block | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | x86 | OS | Windows | ||
Target Version | 1.3.0-beta.1 | Fixed in Version | 1.3.0-beta.1 | ||
Summary | 0010996: Cant use Mantis with oracle9 - var binding fails | ||||
Description | Doesn't work with oracle9.
| ||||
Additional Information | I debug the process watching the echoing state of queries and vars (and oracle trace). Whatever I do - seems that variables doesn't bind. Is there something I don't understand or doesn't Mantis support oracle now? | ||||
Tags | No tags attached. | ||||
We've used patched Mantis 1.1.2 -> 1.1.7 with Oracle 10g, and the binding part (by name, we don't use binding by position) always worked. By default, the 1.1.x series doesn't use binding at all to my knowledge. |
|
Maybe 10g client with 9i db causes the problem, I'm not sure... |
|
Tried 10g db with 10g client - same thing. Last queries from trace: ... |........| ORA-01008 means "not all variables bound". |
|
Problem is in the _query code within adodb-oci8 code |
|
The code within _query is correct. The problem appears to be that the |
|
Partial fix is to reset g_db_param_count within db_query_bound procedure, ie: function db_query_bound( $p_query, $arr_parms = null, $p_limit = -1, $p_offset = -1 ) { |
|
MantisBT: master 2ce60e47 2011-08-10 08:34 Details Diff |
Fix 0013227: Oracle database support (oci8) Mantis 1.2.6 currently does not work with Oracle DB: 1. Installation: 1.1. Oracle DB autocreates PK, so index creation for same field forbidden 1.2. Oracle DB uses datetime literal format timestamp'YYYY-MM-DD HH-MI:SS' 1.3. Oracle DB don't allows altering field property NOT NULL into NOT NULL 1.4. Oracle DB max object length is 30 chars, so some index names must be reduced 1.5. Oracle DB means empty string as NULLs, so NOT NULL restriction must be disabled for some field 1.6. Oracle DB can resolve database server name through TNS, so database name cannot be required 2. General: 2.2. Direct DB query execution result accessing instead of db_fetch_array() 1.3. usage didn't works with Oracle DB 2.4. Oracle DB binds variable by name, so bind names in statement must be sorted to address them. 2.5. Oracle DB handles NULL/DEFAULT values with specific way. 2.6. Oracle DB returns NULL value as true PHP null 2.7. Oracle DB handles sequence access with specific syntax 2.8. Nothing returned by db_prepare_string() in case of oci8 2.9. Oracle DB max object length is 30 chars, so table names must be reduced 2.10. Oracle DB uses LOB literal format similar to mssql 2.11. GetRowAssoc returns empty field values with oci8, it's need to enable returning both associative and indexed arrays. The original patch was provided by DKuranov. He reckons that this also resolves issues 0006853, 0007644, 0010437, 0010996, 0011265, 0011270, 0011276, 0012152, 0012478 Porting to 1.3 - Conflicts: admin/install.php admin/schema.php core/database_api.php manage_tags_page.php |
Affected Issues 0006853, 0007644, 0010437, 0010996, 0011265, 0011270, 0011276, 0012152, 0012478, 0013227 |
|
mod - admin/install.php | Diff File | ||
mod - admin/schema.php | Diff File | ||
mod - core/database_api.php | Diff File |