2016-06-13 4 views
0

에서 개체를 초기화 :PL/SQL의 슈퍼 타입 A를 내가 만들고 하위 유형 B에서 개체를 초기화 할 필요가 하위

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; 
} 

을 지금, 나는 나는 아래의 코드를 실행하면

Declare 
    i_B B; 
BEGIN 
    i_B := B('name_sample', 12, A('elementary')); 
END; 

나는 오류가 아래 얻을 :

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

난 정말이에 대한 당신의 도움을 주셔서 감사합니다. 고마워.

답변

0

이 코드 TRY -

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