文档解释
ORA-29895: duplicate base datatype specified
Cause: User attempted to add a base datatype to an indextype with ARRAY DML which is already supported by the indextype
Action: Remove the duplicate base datatype and retry the command
ORA-29895错误表明SQL语句的子句(如CREATE OR REPLACE OBJECT,ALTER FUNCTION等)中指定了重复的基础数据类型。
官方解释
ORA-29895: duplicate base datatype specified Cause: An attempt was made to use the same base type more than once in the same sub clause of the CREATE OR REPLACE OBJECT command or the ALTER FUNCTION command. Action: Remove one of the references to the duplicate base type name.
用于CREATE OR REPLACE OBJECT命令中的子句或ALTER FUNCTION命令中的子句时,虽然可以使用相同的数据类型,但不能重复指定它们。 因此,用户应尝试修改其子句中的数据类型,以避免重复指定。
常见案例
当用户试图创建一个具有两个元素的形状类型时,可能会出现ORA-29895错误。
例:
CREATE OR REPLACE TYPE my_point AS OBJECT ( x INTEGER, y INTEGER, MEMBER FUNCTION distance RETURN NUMBER(7,3) );
指定的参数INTEGER,INTEGER仅应出现一次,以避免出现ORA-29895错误。
一般处理方法及步骤
1.检查子句中是否有重复指定不同类型及其子类型(如INTEGER和NUMBER)。
2.尝试修改子句中指定的数据类型,以避免重复指定。
3.如果无法避免重复指定,请使用INTEGER和REAL类别来替换数据类型INTEGER和NUMBER。
4.完成修改后,请重试您的命令。