DBMS_DATA_MINING.CREATE_MODEL 导致“ORA-40103:无效的 case-id 列:TID”在 11.2.0.1.0 64b 上,但在 10g 上正常

发布于 2024-12-21 06:50:57 字数 2235 浏览 2 评论 0原文

我在版本 11.2 上遇到 DBMS_DATA_MINING.CREATE_MODEL 问题。在 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

来自 < 的示例代码 code>dmardemo.sql 会导致相同的错误。 我不知道出了什么问题。请帮忙。

I have a problem with DBMS_DATA_MINING.CREATE_MODEL on version 11.2. On 10g this code below works OK, and I'm quite sure that on 11.1 it works too.

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;

causes:

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.

to be sure:

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

and

select * from v$version;

returns:

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 from dmardemo.sql causes the same error.
I don't know what is wrong. Please help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

郁金香雨 2024-12-28 06:50:57

您的代码和示例都适合我。我也在使用 11.2.0.1.0,只不过我使用的是 32 位而不是 64 位。

我不确定这意味着什么。也许你的安装有问题?您可能需要查看验证数据挖掘安装。

Your code and the samples both work for me. I'm also using 11.2.0.1.0, except I'm using 32-bit instead of 64-bit.

I'm not sure what this means. Maybe there was a problem with your installation? You might want to look at Verifying Your Data Mining Installation.

风苍溪 2024-12-28 06:50:57

或者也许 cust_id 在 100001 和 104500 之间的范围在版本之间发生了变化?

or maybe the range where cust_id between 100001 AND 104500 changed between versions?

墨小墨 2024-12-28 06:50:57

纯粹是猜测,但 TRANSACTIONS 的同义词是否有可能不是指向 SH.TRANSACTIONS 而是指向其他表?我知道您指定了架构名称 SH,但如果是这种情况,仍然可能会导致问题(请描述 TRANSACTIONS 来查看)。

Purely a guess, but is it possible that a synonym for TRANSACTIONS is not pointing to SH.TRANSACTIONS but some other table? I know you specify the schema name SH, but may still cause issues if this is the case (describe TRANSACTIONS to see).

你的往事 2024-12-28 06:50:57

感谢您的帮助。系统重新启动几次后,它开始工作。没有任何原因(没有配置更改)。

Thanks for the help. After couple of system restarts it started to work. Without any reason (no configuration changes).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文