Closed (duplicate)
Project:
ACL
Version:
7.x-1.0
Component:
Code
Priority:
Normal
Category:
Support request
Assigned:
Unassigned
Reporter:
Created:
24 Jan 2012 at 09:50 UTC
Updated:
6 May 2012 at 20:53 UTC
During module installation an error occured when following triggers are created:
TRG_ACL_ACL_ID
TRG_acl_DEFS
The installation generates error ORA-06552: PL/SQL: Compilation Unit Analysis Terminated
The reason seems to be the table "ACL" uses Oracle reserved words "NAME" and "NUMBER"
A turnaround is to NOT create these 2 columns during installation. The 2 columns and the corresponding indexes can be created afterward with a SQL tool (e.g. SQLDeveloper)
Comments
Comment #1
salvisThank you for reporting this!
I'm puzzled — what you describe seems like a failure to quote the column names in the CREATE TABLE SQL statement that is generated by the Oracle SQL driver. Can you confirm this?
Comment #2
minoroffense commentedWe're using the ACL module on Oracle 11g. We discovered the Oracle database drive doesn't escape reserved words. There was an attempt to get this working but it broke other stuff.
We have a patch to mostly fix db_select, db_insert, db_delete and db_update which we'll post to the Oracle project.
Once that's up, I'll post here so you can give it another shot. I'm not sure if db_* covers how db_create_table or db_add_field go about creating tables.
There are other issues with using ACL and Oracle (namely db_query and Oracle don't get along at all) so converting those calls to db_select may be required as well to get this to function properly with ACL right now (until db_query is fixed in Oracle).
Comment #3
salvisClosing this (even though it's older) because #1538564: Use db_select() in place of db_query() to work with Oracle DB driver. has a patch.
Please check out the other issue.