Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 返回编号的对象集合_Arrays_Object_Plsql_Sqlplus - Fatal编程技术网

Arrays 返回编号的对象集合

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

我有一个房屋对象,其中包含房屋信息。我正在创建另一个对象-村庄-每个村庄可以包含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 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设计。