DBMS_DATA_MINING.CREATE_MODEL вызывает "ORA-40103: недопустимый столбец идентификатора случая: TID" на 11.2.0.1.0 64b, но на 10g OK - PullRequest
10 голосов
/ 15 декабря 2011

У меня проблема с DBMS_DATA_MINING.CREATE_MODEL в версии 11.2.На 10g этот код ниже работает нормально, и я вполне уверен, что на 11.1 он тоже работает.

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;

вызывает:

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.

, чтобы быть уверенным:

describe "SH"."TRANSACTIONS"
Name Null Type 
--
ITEM NOT NULL NUMBER 
TID NOT NULL NUMBER

и

select * from v$version;

возвращает:

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

Пример кода из dmardemo.sql вызывает ту же ошибку.Я не знаю, что не так.Пожалуйста, помогите.

Ответы [ 4 ]

4 голосов
/ 27 декабря 2011

Ваш код и примеры работают на меня. Я также использую 11.2.0.1.0, за исключением того, что я использую 32-битный вместо 64-битного.

Я не уверен, что это значит. Может быть, была проблема с вашей установкой? Возможно, вы захотите посмотреть Проверка вашей установки интеллектуального анализа данных .

2 голосов
/ 28 декабря 2011

Чисто предположение, но возможно ли, что синоним для TRANSACTIONS указывает не на SH.TRANSACTIONS, а на какую-то другую таблицу?Я знаю, что вы указываете имя схемы SH, но все же можете вызвать проблемы, если это так (опишите ОПЕРАЦИИ, чтобы увидеть).

2 голосов
/ 27 декабря 2011

или, может быть, диапазон where cust_id between 100001 AND 104500 изменяется между версиями?

1 голос
/ 29 декабря 2011

Спасибо за помощь.После нескольких перезапусков системы он начал работать.Без какой-либо причины (без изменений конфигурации).

...