1、Oracle树形结构实现 我突然看见了一个函数CONNECT BY,就想起以前想做一个树形的结构:就是大类型表TB_INDUSTRYCATALOGUE中有字段INDUSTRYCATALOGUEID,name 小类型表TB_INDUSTRYNAME中有字段INDUSTRYNAMEID,INDUSTRYCATALOGUEID,name要实现每个大类型名下有树形的小类型名。1.先创建一个表aabb,字段为id,name导入TB_INDUSTRYCATALOGUE表中的数据:insert into aabb(id,name)select INDUSTRYCATALOGUE
2、ID,namefrom TB_INDUSTRYCATALOGUE;2.在表aabb中加一个字段pid更改字段pid都为0 Update aabbset pid=’0’;3.类似创建表aa结构和TB_INDUSTRYNAME一样,导入TB_INDUSTRYNAME表的数据 Insert into aa Select * from TB_INDUSTRYNAME;4.有可能小类型表中的INDUSTRYNAMEID和大类型表中的INDUSTRYCATALOGUEID有重复的数据,这样就会造成CONNECT BY循环出错,第一次我就出现这个错误,所以避
3、免重复可以把aa中的INDUSTRYNAMEID都加一个很大的数和INDUSTRYCATALOGUEID错开,我加了1000。 Update aa set INDUSTRYNAMEID=to_char(to_number(INDUSTRYNAMEID)+1000);5.这样就可把aa的数据导入aabb了。 Insert into aabb(id,pid,name) Select INDUSTRYNAMEID,INDUSTRYCATALOGUEID,name from aa;6.这样就可以查询了:为了效果好点可以先设一下页的大小 Setpagesi