问:您好,我在Oracle 9i数据库中运行了以下代码:
CREATE OR REPLACE TYPE Persona AS OBJECT( ident varchar2(9), nombr varchar2(30) ); create table tper(per Persona); insert into tper values(Persona('111','Lucas')); select * from tper;
之后系统通知发生错误:
ORA-00932: inconsistent data type. expected NUMBER get USUT7.PERSONA
请问问题出在什么地方?我该如何解决?
答:我在Oracle 11g R2数据库上运行了你的DDL:
CREATE OR REPLACE TYPE Persona as object(
ident varchar2(9), nombr varchar2(30));
create table tper(per Persona);
insert into tper values(Persona('111','Lucas'));
insert into tper values(Persona('AAA','Dan'));
select * from tper;
drop table tper;
drop type Persona;
得到的结果是正常的,没有出错:
Type created.
Table created.
1 row created.
1 row created.
PER
--------------------------------------------------
(111, Lucas)
(AAA, Dan)
2 rows selected.
Table dropped.
Type dropped.
我认为你的错误可能是本地化语言设置的问题。我建议你从Oracle 9i升级到Oracle 11g R2。