我正在尝试在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.(状态(P / F)?char(1));
答案 0 :(得分:2)
您需要做两件事:
将您的stud_detail
类型声明为NOT FINAL
。您只能从NOT FINAL
类型继承,默认情况下类型为FINAL
。
在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)
请注意,我已将varchar
更改为varchar2
,并在列status(P/F)?
的名称旁边加上引号。