Page 1 of 1

Oracle

Posted: Wed Jan 17, 2007 11:16 am
by piotr22
Hi

I have a problem. I would like to try CMSmadesimle on Oracle database. Is't possible?  How can I do this?

Re: Oracle

Posted: Wed Jan 17, 2007 1:59 pm
by cyberman
Current CMSms version does not support oracle. And Current adodb lite does not support oracle too (no driver), so you have to switch to AdoDB (slower). And it's not tested too if CMSms will works right.

But I know you wanna try it - sounds very interesting.

Have not access to oracle but perhaps this will work:

1. Create a CMSms installation normally with mysql.
2. Export CMSms database
3. Import database into an oracle one (is it possible?)
4. Get currentAdoDB version from http://adodb.sourceforge.net/ and copy it to /lib folder.
5. change config.php

Code: Select all

$config['dbms'] = 'mysql';
to

Code: Select all

$config['dbms'] = 'oracle';
and

Code: Select all

$config['use_adodb_lite'] = true;
to

Code: Select all

$config['use_adodb_lite'] = false;
6. Clear Cache

I like to hear your skills ...

Re: Oracle

Posted: Tue Mar 06, 2007 8:39 am
by robert
hi,

why not try OleDB or DBexpress?

Re: Oracle

Posted: Tue Mar 06, 2007 3:47 pm
by Pierre M.
Why not try oracle.com/products/middleware/content-management/web-content-management.html ?-)
kidding me...
Pierre M.

Re: Oracle

Posted: Thu Mar 08, 2007 9:38 am
by fredt
So, were you successful ?

Re: Oracle

Posted: Thu May 17, 2007 3:37 pm
by RQ
CMSMS seems to work (well... I'm testing it now) with Oracle using configuration like this:

Code: Select all

define('ADODB_ASSOC_CASE', 0);         # required to get table and column names in lowercase
$config['dbms'] = 'oci8po';            # ADOdb calls it "portable version of oci8 driver"
$config['db_hostname'] = false;        # read adodb-oci8.inc.php for more info about connection modes
$config['db_username'] = 'scheme_name';
$config['db_password'] = 'password';
$config['db_name'] = 'service_name';   # from tnsnames.ora
$config['use_adodb_lite'] = false;
However, I must note that some table/sequence names are really long, and Oracle seems to have a 30 char limit for names. For example, a string 'cms_additional_htmlblob_users_seq' is 33 characters, which is too long, so in order to not have problems with this sequence, one must not set a very short table prefix (max. 1 character).

Furthermore, I cannot create new Content pages. With debugging turned on, I get following warnings when trying to create content:
Warning: ociexecute() [function.ociexecute]: OCIStmtExecute: ORA-01841: (full) year must be between -4713 and +9999, and not be 0 in /path/to/cmsms/lib/adodb/drivers/adodb-oci8.inc.php on line 1026

      adodb_oci8po._execute(INSERT INTO cms_content (content_id, content_name, content_alias, type, owner_id, parent_id, template_id, item_order, hierarchy,..., Array[23]) % line  765, file: adodb-oci8.inc.php
  adodb_oci8po.execute(INSERT INTO cms_content (content_id, content_name, content_alias, type, owner_id, parent_id, template_id, item_order, hierarchy,..., Array[23]) % line 1130, file: class.content.inc.php
content.insert() % line  943, file: class.content.inc.php
content.save() % line  287, file: addcontent.php


Warning: ociexecute() [function.ociexecute]: OCIStmtExecute: ORA-00933: SQL command not properly ended in /path/to/cmsms/lib/adodb/drivers/adodb-oci8.inc.php on line 1026

        adodb_oci8po._execute(SELECT * FROM cms_module_search_items WHERE
                  extra_attr = ? AND content_id = ? LIMIT 1, Array[2]) % line  765, file: adodb-oci8.inc.php
      adodb_oci8po.execute(SELECT * FROM cms_module_search_items WHERE
                  extra_attr = ? AND content_id = ? LIMIT 1, Array[2]) % line  408, file: Search.module.php
  search.doevent(Core, ContentEditPost, Array[1]) % line  129, file: class.events.inc.php
events.sendevent(Core, ContentEditPost, Array[1]) % line  955, file: class.content.inc.php
content.save() % line  287, file: addcontent.php

Re: Oracle

Posted: Fri Jul 06, 2007 4:03 am
by kermit
what i'm curious to know.. is how does performance compare to mysql or postgre?