2013-02-07 2 views
0

다음을 수행하여 본문 형식을 만드는 데 문제가 있습니다. 도와주세요!!sql + 메서드 본문 생성

SQL> desc theater_t 
Name          Null? Type 
----------------------------------------- -------- ---------------------------- 
TNO            NUMBER 
NAME            VARCHAR2(15) 
ADDRESS           ADDRESS_TY 
PHONE            PH_TY 
START_DATE           DATE 
END_DATE           DATE 

METHOD 
------ 
MEMBER FUNCTION FEATURED_DAYS RETURNS NUMBER 

SQL> desc theaters 
Name          Null? Type 
----------------------------------------- -------- ---------------------------- 
TNO            NUMBER 
NAME            VARCHAR2(15) 
ADDRESS           ADDRESS_TY 
PHONE            PH_TY 
START_DATE           DATE 
END_DATE           DATE 

SQL> desc nowshowing 
Name          Null? Type 
----------------------------------------- -------- ---------------------------- 
FILM          NOT NULL NUMBER 
THEATER           REF OF THEATER_T 

극장은 theater_table 유형의 테이블입니다. end_date-start_date를 반환하는 featured_days를 만들고 싶습니다. 그러나 나는 그것을 할 수 없다.

답변

1
CREATE OR REPLACE type theater_t AS OBJECT 
    ( tno  NUMBER, 
      name  VARCHAR2(10), 
      address VARCHAR2(20), 
      phone  NUMBER, 
      start_date DATE, 
      end_date DATE, 
      member FUNCTION featured_days 
      return number); 

내가 creted 한 바디 부분은 다음과 같습니다

CREATE OR REPLACE TYPE BODY theater_t 
IS 
    MEMBER FUNCTION FEATURED_DAYS RETURN NUMBER 
IS 
BEGIN 
    RETURN (end_date- start_date); 
END; 
END; 
/

당신과 FEATURED_DAYS의 값을 반환 할 수 있습니다 :

SET serveroutput ON 
declare 
    obj theater_t := theater_t (1,'ajmal','my_address',9876,to_date('01-jan-2013','dd-mon-yyyy'),to_date('07-feb-2013','dd-mon-yyyy')); 
BEGIN 
    DBMS_OUTPUT.PUT_LINE (obj.name||' '||obj.featured_days||' days'); 
END; 

을 그리고 당신은 얻을 것이다 :

anonymous block completed 

ajmal 37 days 

희망 하시겠습니까?