oracle 的pl/sql的(树型结构的题)。
例如表:test_func
code codeName superId superName isref
000 北京一小学 0 北京市教育局 0
000001 一年级 000 北京一小学 0
000001101 一年级一班 000001 一年级 1
000001102 一年级二班 000001 一年级 1
000001103 一年级三班 000001 一年级 1
000002 二年级 000 北京一小学 0
000001201 二年级一班 000002 二年级 1
000001202 二年级二班 000002 二年级 1
000001203 二年级三班 000002 二年级 1
000003 三年级 000 北京一小学 0
000001301 三年级一班 000003 三年级 1
000001302 三年级二班 000003 三年级 1
000001303 三年级三班 000003 三年级 1
000004 四年级 000 北京一小学 0
000004401 四年级一班 000004 四年级 1
求一个插入函数:比如插入(000001104 一年级四班 000001 一年级)这样一条记录,则会插入在记录(000001103 一年级三班 000001 一年级)下面,而不是插入在其它地方;若插入到isref为0的下面,则改变isref的值为1。(isref代表是否叶子结点:0代表否,1代表是) 求一个删除函数:比如删除了记录(000004401 四年级一班 000004 四年级 1)
则上面的记录(000004 四年级 000 北京一小学 0)的isref变为1,变成了非
叶子结点了
例如表:test_func
code codeName superId superName isref
000 北京一小学 0 北京市教育局 0
000001 一年级 000 北京一小学 0
000001101 一年级一班 000001 一年级 1
000001102 一年级二班 000001 一年级 1
000001103 一年级三班 000001 一年级 1
000002 二年级 000 北京一小学 0
000001201 二年级一班 000002 二年级 1
000001202 二年级二班 000002 二年级 1
000001203 二年级三班 000002 二年级 1
000003 三年级 000 北京一小学 0
000001301 三年级一班 000003 三年级 1
000001302 三年级二班 000003 三年级 1
000001303 三年级三班 000003 三年级 1
000004 四年级 000 北京一小学 0
000004401 四年级一班 000004 四年级 1
求一个插入函数:比如插入(000001104 一年级四班 000001 一年级)这样一条记录,则会插入在记录(000001103 一年级三班 000001 一年级)下面,而不是插入在其它地方;若插入到isref为0的下面,则改变isref的值为1。(isref代表是否叶子结点:0代表否,1代表是) 求一个删除函数:比如删除了记录(000004401 四年级一班 000004 四年级 1)
则上面的记录(000004 四年级 000 北京一小学 0)的isref变为1,变成了非
叶子结点了
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货