Oracle 创建编译错误的类型
Oracle creates type with compilation error
我创建的类型如下:
create type age_t as object(
dob DATE,
member function age_f return number);
/
为了定义正文,我编写了以下代码:
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 给我编译错误信息。
请告诉我问题出在哪里。
我正在使用 oracle 11g sql 客户端。
在创建主体类型定义中,删除 "CREATE OR REPLACE BODY age_t AS" 语句之后和“/”之前的括号“()”。
另外,将 v_dob := to_date(dob) 语句放入 begin 和 end 部分,或者在创建时初始化 v_dob。即 v_dob 日期 := to_date(dob);
更正代码,没有编译错误;
`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;
/`
您可以在此处找到更多信息 www.exploredatabase.com
我创建的类型如下:
create type age_t as object(
dob DATE,
member function age_f return number);
/
为了定义正文,我编写了以下代码:
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 给我编译错误信息。 请告诉我问题出在哪里。 我正在使用 oracle 11g sql 客户端。
在创建主体类型定义中,删除 "CREATE OR REPLACE BODY age_t AS" 语句之后和“/”之前的括号“()”。 另外,将 v_dob := to_date(dob) 语句放入 begin 和 end 部分,或者在创建时初始化 v_dob。即 v_dob 日期 := to_date(dob);
更正代码,没有编译错误;
`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;
/`
您可以在此处找到更多信息 www.exploredatabase.com