Oracle Data Mining is one of the component of Oracle Database. When we create a database using DBCA it creates this component automatically. Even when we go for basic installation there is an option to select or de-select Oracle data mining. While doing Advanced installation, you need to go to “Custom” option on “Select Installation Type” screen and select Oracle Data Mining check box.
For more information please check Installation link.
Below are the simple steps for installing Oracle Data Mining manually using the scripts. This post is based on metalink Note ID: 420791.1
1) Install Oracle Data Mining
This is done by running a simple script dminst.sql present in ORACLE_HOME/rdbms/admin in case of
10.2.X database and in ORACLE_HOME/dm/admin in case of 10.1.X database.
This script needs 2 inputs. First is the name of SYSAUX tablespace name and second is TEMP tablespace name.
SQL> @$ORACLE_HOME/rdbms/admin/dminst.sql SYSAUX TEMP
2) odmpatch.sql should be run to make ODM at 10.2.0.X patch release level.
SQL> @$ORACLE_HOME/rdbms/admin/odmpatch.sql
3) Compile the invalids
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
Check the component in DBA_REGISTRY
SQL> select COMP_NAME,VERSION,STATUS from dba_registry where COMP_NAME=’Oracle Data Mining’;
COMP_NAME
——————————————————————————–
VERSION STATUS
—————————— ———————————
Oracle Data Mining
10.2.0.3.0 VALID
I had problem of mutating with trigger.. so your article helped me and i successfully solved my problem.
bow now i am facing performance issue.. let me explain you probably you could spot something in that.
DECLARE
counter NUMBER;
m_item varchar(20):= ‘%’||test_package.m_id||’%’;
i_item varchar(20):= ‘%’||test_package.i_id||’%’;
BEGIN
SELECT count(*) into counter FROM VOLSTR.cms_items i, VOLSTR.acs_objects a
WHERE i.master_id in ( SELECT ii.item_id FROM VOLSTR.cms_items ii WHERE
ii.ancestors like m_item and ii.version = ‘draft’ and (select count(item_id) from
VOLSTR.cms_items where master_id = ii.item_id) > 1)
and i.item_id = a.object_id
ORDER BY i.master_id;
— RAISE_APPLICATION_ERROR ( -20601, ‘Duplicate Live is not allowed 2’ || item);
IF (counter >1 ) THEN
RAISE_APPLICATION_ERROR ( -20601, ‘Duplicate Live is not allowed 3’ || i_item || ‘ ‘ ||m_item || ” || counter);
END IF;
END;
CREATE OR REPLACE PACKAGE test_package AS
m_id cms_items.master_id%TYPE;
i_id cms_items.item_id%TYPE;
END;
create or replace trigger mutat_trig
after INSERT OR UPDATE on cms_items
for each row
begin
test_package.m_id := :new.master_id;
test_package.i_id := :new.item_id;
— RAISE_APPLICATION_ERROR ( -20601, ‘Duplicate Live is not allowed’ || test_package.id);
end;
basically i had to stop duplicate live entry in cms_items.
so
SELECT count(*) into counter FROM VOLSTR.cms_items i, VOLSTR.acs_objects a
WHERE i.master_id in ( SELECT ii.item_id FROM VOLSTR.cms_items ii WHERE
ii.ancestors like m_item and ii.version = ‘draft’ and (select count(item_id) from
VOLSTR.cms_items where master_id = ii.item_id) > 1)
and i.item_id = a.object_id
ORDER BY i.master_id;
above query gives me duplicate entry if any process try to insert duplicate live entry..
if i run that query in sqlplus ..that takes hardly fraction of second althoug cms_items has half million data.
but when i create trigger and run my application this trigger force my application to wait for 2 mintue minimum.
can you please give your valuable idea about this.
Kind Regards
chandra
infoaxon technology..