解决Oracle 9i数据库中数据类型不一致的错误

日期: 2012-06-06 作者:Dan Clamage翻译:孙瑞 来源: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′,’Luc……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

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。