当前位置: 代码迷 >> Oracle认证考试 >> oracle 中instr 和substr函数用法 请
  详细解决方案

oracle 中instr 和substr函数用法 请

热度:1388   发布时间:2013-02-26 00:00:00.0
oracle 中instr 和substr函数用法 请高手指点
用pl/SQL写一个函数:传入的值是 {name}yun{worker_id}123456{email}xiachufeng@126.com 等以{}+value形式的一组有规则的字符
要求根据{}中的内容得到value
如果输入的{name} 得到yun
输入{worker_id} 得到123456

这个可以用instr 和substr函数做吗 ?
给出具体的答案  


严重给分。。。。。。。。。。。。。。。。谢谢

------解决方案--------------------------------------------------------
SQL code
create or replace function name_value(i_str varchar2,i_name varchar2)return varchar2is  v_str varchar2(4000);  str_from number(4);   -- 子串起始位置  str_to number(4);     -- 子串结束位置begin  v_str := i_str||'{}';  str_from := instr(v_str,'}',instr(v_str,i_name),1);  str_to := instr(v_str,'{',instr(v_str,i_name),1);  return substr(v_str, str_from+1, str_to-str_from-1);end;/drop table t purge;create table t(names varchar2(4000));insert into t(names) values('{name}yun{worker_id}123456{email}xiachufeng@126.com');commit;column names for a60;column value for a30;select names, name_value(names,'name') as value from tunion allselect names, name_value(names,'worker_id') from tunion allselect names, name_value(names,'email') from t;
------解决方案--------------------------------------------------------
探讨
用pl/SQL写一个函数:传入的值是 {name}yun{worker_id}123456{email}xiachufeng@126.com 等以{}+value形式的一组有规则的字符
要求根据{}中的内容得到value
如果输入的{name} 得到yun
输入{worker_id} 得到123456

这个可以用instr 和substr函数做吗 ?
给出具体的答案


严……
  相关解决方案