Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql oracle10g中的类型继承_Sql_Oracle_Oracle10g - Fatal编程技术网

Sql 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.在作为对象

我正在尝试在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.在作为对象的螺柱详细信息下创建类型螺柱结果
2.(状态(P/F)?字符(1))


您需要做两件事:

  • 将您的
    stud\u detail
    类型声明为
    NOT FINAL
    。您只能从
    NOT FINAL
    类型继承,默认情况下类型为
    FINAL

  • 在stud\u detail…行下的
    创建类型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手册中)-如果他们想这样做,他们有很多机会。如果你今天创建一个表,这并不重要。