Sql oracle10g中的类型继承
我正在尝试在Oracle10g中实现类型继承 这是我的密码:Sql oracle10g中的类型继承,sql,oracle,oracle10g,Sql,Oracle,Oracle10g,我正在尝试在Oracle10g中实现类型继承 这是我的密码: 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绑定的) 1.在作为对象
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绑定的)
1.在作为对象的螺柱详细信息下创建类型螺柱结果2.(状态(P/F)?字符(1))
您需要做两件事:
stud\u detail
类型声明为NOT FINAL
。您只能从NOT FINAL
类型继承,默认情况下类型为FINAL
创建类型stud\u结果中,丢失AS
关键字
SQL>创建类型螺柱细节作为对象(螺柱id号(5),螺柱名称varchar2(8))不是最终的;
2 /
创建的类型。
SQL>在螺柱详细信息下创建类型螺柱结果(“状态(P/F)?”字符(1));
2 /
创建的类型。
SQL>描述结果;
stud_结果扩展了LUKE.stud_细节
名称空?类型
----------------------------------------- -------- ----------------------------
螺柱识别号(5)
螺柱名称VARCHAR2(8)
状态(P/F)?字符(1)
请注意,我已将
varchar
更改为varchar2
,并在status(p/F)
varchar
列的名称周围加上引号。varchar是varchar2
@a_horse_的别名,没有名称:它现在是,但将来可能不是。请看。甲骨文已经告诉我们这一点将近30年了(我认为这句话第一次出现在7.x手册中)-如果他们想这样做,他们有很多机会。如果你今天创建一个表,这并不重要。