0

我正在尝试创建一个超类型客户服务和子类型代理和主管,因此它们可以具有固有值但是当我尝试在 oracle sql 中运行它时:出现一条消息

Warning: Type created with compilation errors.

下面的代码有什么问题?

Create or replace type customer_s_type as object (
   csID number, 
   csName varchar(15),
   csType number ) NOT FINAL;

Create or replace type supervisor_type UNDER customer_s_type ( title varchar (10) );  

Create or replace type agent_type UNDER customer_s_type (title varchar (10)); 

Create table supervisor of supervisor_type (
   CONSTRAINT supervisor_PK PRIMARY KEY (csID));

Create table agent of agent_type (CONSTRAINT agent_PK PRIMARY KEY (csID));

create table customer_service(
   csID number(10),
   csType number(10),
   constraint supervisor_pk primary key(csID) );
4

1 回答 1

3

您可以show errors在 SQL*Plus 或 SQL Developer 中使用,或者select * from user_errors,查看错误详细信息。

由于您已经显示了六个命令,并且警告大约是前三个命令之一(因为它指的是type),并且除了注释中指出的约束之外,它们看起来还可以,看起来整个脚本被解释为一个命令. 这取决于您的客户端设置,但您可能只需要用 a 分隔命令/以使它们执行。因为类型可以包含 PL/SQL,;所以不被视为语句分隔符。所以:

Create or replace type customer_s_type as object (
   csID number, 
   csName varchar(15),
   csType number ) NOT FINAL;
/

Create or replace type supervisor_type UNDER customer_s_type ( title varchar (10) );
/

Create or replace type agent_type UNDER customer_s_type (title varchar (10));
/

Create table supervisor of supervisor_type (
   CONSTRAINT supervisor_PK PRIMARY KEY (csID));

Create table agent of agent_type (CONSTRAINT agent_PK PRIMARY KEY (csID));

create table customer_service(
   csID number(10),
   csType number(10),
   constraint customer_service_pk primary key(csID) );
于 2013-06-20T21:26:56.677 回答