问:您好,我在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′,’Luc……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
问:您好,我在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。