0

我正在尝试在 oracle 10g 中实现类型继承

这是我的代码:

create type stud_detail as object
(stud_id number(5),
stud_name varchar(8));
/


create type stud_result under stud_detail as
(status(P/F)? char(1));
/

我收到此错误:

第 1 行出现错误:PLS-00103:在预期以下情况之一时遇到符号“AS”:

. (不是外部 JAVA_ BOUND_
1. 在 stud_detail 下创建类型 stud_result 作为对象
2. (status(P/F)?char(1));

4

1 回答 1

2

您需要做两件事:

  1. 将您的stud_detail类型声明为NOT FINAL. 您只能从 类型 继承NOT FINAL,并且FINAL默认情况下类型是。

  2. 丢失AS您的行中的关键字create type stud_result under stud_detail...

示范:

SQL> create type stud_detail as object (stud_id number(5), stud_name varchar2(8)) not final;
  2  /

Type created.

SQL> create type stud_result under stud_detail ("status(P/F)?" char(1));
  2  /

Type created.

SQL> desc stud_result;
 stud_result extends LUKE.STUD_DETAIL
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 STUD_ID                                            NUMBER(5)
 STUD_NAME                                          VARCHAR2(8)
 status(P/F)?                                       CHAR(1)

请注意,我已更改varcharvarchar2,并在列名称周围加上引号status(P/F)?

于 2013-09-28T11:48:41.450 回答