Mam problem z DBMS_DATA_MINING.CREATE_MODEL w wersji 11.2. Na 10g poniższy kod działa poprawnie i jestem pewien, że na 11.1 też działa.DBMS_DATA_MINING.CREATE_MODEL powoduje "ORA-40103: niepoprawna kolumna case-id: TID" na 11.2.0.1.0 64b, ale na 10g OK
CREATE OR REPLACE VIEW "SH"."ITEMS" AS SELECT PROD_ID AS item FROM SALES GROUP BY PROD_ID;
CREATE OR REPLACE VIEW "SH"."TRANSACTIONS" AS SELECT "SH"."SALES"."PROD_ID" AS item , "SH"."SALES"."CUST_ID" tid FROM "SH"."SALES" where cust_id between 100001 AND 104500 GROUP BY cust_id, prod_id;
CREATE TABLE "SH"."AR_SETTINGS" ("SETTING_NAME" VARCHAR2(30 BYTE), "SETTING_VALUE" VARCHAR2(128 BYTE));
INSERT INTO SH.AR_SETTINGS (SETTING_NAME, SETTING_VALUE) VALUES ('ASSO_MAX_RULE_LENGTH', '6');
INSERT INTO SH.AR_SETTINGS (SETTING_NAME, SETTING_VALUE) VALUES('ASSO_MIN_CONFIDENCE', TO_CHAR(0.7));
INSERT INTO SH.AR_SETTINGS (SETTING_NAME, SETTING_VALUE) VALUES('ASSO_MIN_SUPPORT', TO_CHAR(0.1));
BEGIN DBMS_DATA_MINING.CREATE_MODEL(model_name => 'AR_sh', mining_function => DBMS_DATA_MINING.ASSOCIATION, data_schema_name => 'sh', data_table_name => 'transactions', case_id_column_name => 'tid', settings_schema_name => 'sh', settings_table_name => 'ar_settings'); END;
przyczyny:
ORA-40103: invalid case-id column: TID
ORA-06512: at "SYS.DBMS_DATA_MINING", line 1779
ORA-06512: at line 1
40103. 00000 - "invalid case-id column: %s"
*Cause: The column designated as case-id is not of one of CHAR, VARCHAR2,
NUMBER data type. Case-id columns of type CHAR and VARCHAR2 must
be of length less than or equal to 128 bytes.
*Action: Change the schema of your input data to supply a case-id column
of appropriate data type and/or length.
aby mieć pewność:
describe "SH"."TRANSACTIONS"
Name Null Type
--
ITEM NOT NULL NUMBER
TID NOT NULL NUMBER
i
select * from v$version;
Powroty:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
The sample code z dmardemo.sql
powoduje ten sam błąd. Nie wiem, co jest nie tak. Proszę pomóż.
thx. Nie wiem, czy to ważne, ale używam Windows 7. – zacheusz
Wątpię, żeby Vista/7 robił różnicę. Kiedy wydaje się, że Oracle radzi sobie bardzo dobrze, zachowuje spójność swojego oprogramowania pomiędzy systemami operacyjnymi. Jestem zaskoczony, że różnica w "cust_id" również byłaby istotna; Twój przykład nadal pracował dla mnie, nawet gdy zmieniłem zakres, aby nie zwracać żadnych wyników. Czy możesz odtworzyć swój problem w innej bazie danych, jednej ze świeżej instalacji 11g? Jeśli twoja baza danych została zaktualizowana z 10g, wygląda na to, że musisz wykonać dodatkowe czynności w celu eksploracji danych: http://docs.oracle.com/cd/E18283_01/datamine.112/e16807/upgrade_odm.htm#sthref285 –
it dzieje się na świeżej instalacji 11.2 (bez aktualizacji) – zacheusz