2017-05-02 2 views
0

i erstellt einen Typ haben, wie folgt:Oracle erstellt mit Kompilierungsfehler Typ

create type age_t as object(
    dob DATE, 
    member function age_f return number); 
    /

den Körper zu definieren i den folgenden Code geschrieben:

create or replace type body age_t as(
     member function age_f return number is 
     v_dob date; 
     age number(3); 
     v_dob := to_date(dob); 
     begin 
     age := trunc(months_between(sysdate,v_dob))/12; 
     return age; 
     end; 
     end; 
     ); 
     /

Oracle gibt mir mit Fehlermeldung zusammengestellt. Bitte sagen Sie mir, wo das Problem liegt. Ich benutze Oracle 11g SQL-Client.

Antwort

0

Entfernen Sie in der Create-Body-Typ-Definition die Klammern "()", die hinter der Anweisung "CREATE OR REPLACE BODY age_t AS" und vor "/" stehen. Nehmen Sie auch die Anweisung v_dob: = to_date (dob) in den Anfangs- und Endabschnitt oder initialisieren Sie v_dob während der Erstellung. Das ist v_dob Datum: = to_date (dob);

Korrekten Code ohne Kompilierungsfehler;

`create or replace type body age_t as 
    member function age_f return number is 
    v_dob date := to_date(dob); 
    age number(3); 
    begin 
    age := trunc(months_between(sysdate,v_dob))/12; 
    return age; 
    end; 
    end; 
    /` 

Sie können mehr finden hier www.exploredatabase.com

Verwandte Themen