2013-12-20 3 views
1

마지막 유형 인 "Subscriber_T"에서 불완전하거나 형식이 잘못되었습니다.하지만 구문에 문제가 없습니다. 다음은 스크립트입니다.오류 선언이 불완전하거나 형식이 잘못되었습니다

CREATE OR REPLACE TYPE Surnames_T AS OBJECT (
    Surname varchar (20) 
); 
/

CREATE OR REPLACE TYPE listSurnames_T 
AS Varray(4) of Surnames_T; 
/


CREATE OR REPLACE TYPE listTels as object(
    Tel number (12) 
); 
/

CREATE OR REPLACE TYPE listTels_T as Varray(5) of listTels; 
/


CREATE OR REPLACE TYPE ADDRESS_T AS OBJECT (
    NUM  number (6), 
    STREET varchar (20), 
    TOWN  varchar (20) 
); 
/

CREATE or replace type TAddress 
as table of Address_T; 
/

create or replace type Subscriber_T as object(
    num_s number(6), 
    sName varchar(30), 
    surname listSurnames_T, 
    Adds TAddress, 
    DateOfBirth date, 
    member function cal_Age return number, 
    phoneNo listTels_T 
); 
/
show error 

제발 고쳐주세요!

답변

2

다른 모든 필드 뒤에 멤버 함수를 추가해야합니다. 당신은 말의 필드를 몰래 수 없습니다

create or replace type Subscriber_T as object(
    num_s number(6), 
    sName varchar(30), 
    surname listSurnames_T, 
    Adds TAddress, 
    DateOfBirth date, 
    phoneNo listTels_T, 
    member function cal_Age return number 
); 
/

TYPE SUBSCRIBER_T compiled 

필수 SQL Fiddle합니다.

이것은 the syntax diagram in the documentation으로 표시됩니다. 하나 이상의 속성과 하나 이상의 요소 (함수 포함)를 가질 수 있지만 둘을 혼합 할 수는 없습니다. 어느 비트에 루프가 있는지, 루프가 돌아가는 위치를 확인하십시오.

+0

감사합니다. Alex! 형식은 성공적으로 지금 컴파일되지만 Subscriber_T 형식의 테이블을 만든 후에 새로운 문제가 있습니다. 필자는이 테이블을 함수 및 삽입 값과 함께 포함하는 새로운 질문을 게시했습니다. 도와주세요. Txx –

관련 문제