请教一个ORACLE递归的问题
准备数据
create table properties(c_key varchar(300),c_value varchar(300),c_remark varchar(300));
insert into properties values('path.share.staticAppendence','"$path.share"/static_appendence.jsp','');
insert into properties values('path.share','"$test"/WEB-INF/share','');
insert into properties values('test','111','');
select b.c_key,b.c_value,b.c_remark,decode(prior v1,null,c_value,replace(to_char(prior v1),'"$'||c_key||'"',c_value)) v1,prior v1 from (select a.*,c_value v1 from properties a) b start with c_key='path.share.staticAppendence' connect by instr(prior c_value,'"$'||c_key||'"')<>0
我本来想通过这样一条递归句子,将c_value列进行参数化处理的,格式是将"$c_key"替换为表中包含的c_key对应的值
本以为将新的值插入到旧的列中,就能替换掉旧的值,没想到我想错了,使用的还是旧的值
1 path.share.staticAppendence "$path.share"/static_appendence.jsp "$path.share"/static_appendence.jsp
2 path.share "$test"/WEB-INF/share "$test"/WEB-INF/share/static_appendence.jsp "$path.share"/static_appendence.jsp
3 test 111 111/WEB-INF/share "$test"/WEB-INF/share
本来我期望的第3行 prior v1为"$test"/WEB-INF/share/static_appendence.jsp的,没想到竟然返回了"$test"/WEB-INF/share
请问如何处理,谢谢
请确实阅读了题目再回答,谢谢