2016-06-13 1 views
0

からのオブジェクトの初期化:私はPL/SQLでのスーパータイプAと、サブタイプBからオブジェクトを作成し、初期化する必要があり、サブタイプ

Declare 
    i_B B; 
BEGIN 
    i_B := B('name_sample', 12, A('elementary')); 
END; 
:私は以下のコードを実行したとき、私は、今

create or replace 
TYPE "A" as object{ 
school_category varchar(10); 
} 

create or replace 
TYPE "B" UNDER A { 
school_name varchar(10); 
school_ranking INTEGER; 
} 

私はエラーの下に取得する:

PLS-00306: wrong number or types of arguments in call to 'B' 

私は本当にこの上のあなたの助けに感謝。どうもありがとう。

答えて

0

TRY THIS CODE: -

Create Or Replace Type Atest As Object 
    (
    School_Category Varchar2(10) 
    ); 

    create or replace Type Btest Under Atest (
    school_name varchar2(10), 
    School_Ranking number 
     ); 

DECLARE 
    var2 Btest; 
BEGIN 
    var2 := Btest('Good','MySchool',2); 

    Dbms_Output.Put_Line(var2. School_Category); 
    Dbms_Output.Put_Line(var2. school_name); 
    Dbms_Output.Put_Line(var2. School_Ranking); 
End; 

それとも

Create Or Replace Type Atest As Object 
(
School_Category Varchar2(10) 
); 

create or replace Type Btest as Object (
school_name varchar2(10), 
School_Ranking number, 
School_Categ Atest 
); 

Declare 
iobj Btest; 
Begin 
iobj:=Btest(school_name=>'MYSCHOOL',School_Ranking=>2,School_Categ=>Atest(School_Category=>'GOOD')); 

Dbms_Output.Put_Line(Iobj.School_Name); 
Dbms_Output.Put_Line(Iobj.School_Ranking); 

end; 
+0

グレート..あなたの助けのためにそんなにナンシーありがとうと質問に答える.. あなたは「=>を記述してください可能性"同様にシンボル!私が見る限り、それは属性に値を割り当てます。しかし、プロシージャや関数の引数に値を渡すために使用する場所をいくつか見てきました。 (私はあなたがそれを説明する文書やリソースを持っているなら、それを感謝します) – Shahb

関連する問題