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. スタッド_ディテールの下にスタッド_結果をオブジェクトとして作成します
2. (status(P/F)? char(1));

4

1 に答える 1

2

次の 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)

varcharに変更したことに注意しvarchar2、列の名前を引用符で囲みますstatus(P/F)?

于 2013-09-28T11:48:41.450 に答える