Arrays 返回编号的对象集合
我有一个房屋对象,其中包含房屋信息。我正在创建另一个对象-村庄-每个村庄可以包含2-50间房屋。我正在努力创建village对象,更具体地说是在循环函数中-我希望village varray包含一个房屋集合和返回村庄人口的成员函数 房屋对象Arrays 返回编号的对象集合,arrays,object,plsql,sqlplus,Arrays,Object,Plsql,Sqlplus,我有一个房屋对象,其中包含房屋信息。我正在创建另一个对象-村庄-每个村庄可以包含2-50间房屋。我正在努力创建village对象,更具体地说是在循环函数中-我希望village varray包含一个房屋集合和返回村庄人口的成员函数 房屋对象 CREATE or REPLACE type house as object ( house_no number, road_name varchar2(20), postcode varchar2(10), no_of_residents
CREATE or REPLACE type house as object (
house_no number,
road_name varchar2(20),
postcode varchar2(10),
no_of_residents number,
member function pass(h house) return number
);
/
CREATE or REPLACE type village_array is varray(50) of house (
village_id number,
village_name varchar2(25),
population number,
member function village_population(p v_population) return number
);
/
村庄对象
CREATE or REPLACE type house as object (
house_no number,
road_name varchar2(20),
postcode varchar2(10),
no_of_residents number,
member function pass(h house) return number
);
/
CREATE or REPLACE type village_array is varray(50) of house (
village_id number,
village_name varchar2(25),
population number,
member function village_population(p v_population) return number
);
/
村庄对象主体
CREATE or REPLACE type body village_array as
member function village_population(p v_population) return number is
begin
/*
This is where I am clearly struggling to sum all of the house residents
and returning the population of a village. I have a feeling it is some
kind of for loop in here somewhere
*/
then
return ;
else
return ;
end;
end;
/
我的村庄表格
CREATE Table Village (
village_id number,
village village_array
)
我想您需要从对象本身查找
village\u id
,然后将其输入到一个SELECT
语句中,该语句在必要的表上求和。我以前没有在Postgres中使用过存储过程-你能在一组对象上运行SUM()
吗?我不确定你是否想在你的村庄中单独存储你的人口-如果一所房子总是只在一个村庄中,然后,村庄的人口是该村庄房屋内居民人数的总和。不要用复杂的设计使自己变得复杂,这对于学习来说是可以的,但如果你不必处理这种设计,你必须重新考虑更灵活、可维护的db设计。