oracle function怎么用(大小写转换)?

我的问题是这样的,我希望对字段以下的数据修改成小写,把单引号内的所有字母改成小写,以下的是在字段里的一个数据,请帮忙以下,谢谢,利用oracle的function函数来写... 我的问题是这样的,我希望对字段以下的数据修改成小写,把单引号内的所有字母改成小写,以下的是在字段里的一个数据,请帮忙以下,谢谢,利用oracle的function函数来写。
DECODE(DECODE(MSS_MAP_NAME, 'UPLOC',MAP_REQ, 0), 0, 0, DECODE(MSS_MAP_NAME, 'UPLOC', MAP_RTZ,0) / DECODE(MSS_MAP_NAME, 'PRVSUBINFO', MAP_REQ, 0))
展开
 我来答
太平岁年丰9
2014-05-07 · TA获得超过1231个赞
知道小有建树答主
回答量:1017
采纳率:100%
帮助的人:1094万
展开全部
如果你的字段内保存的都是这些代码,你大可以把这个字段都改成小写,字段代码在执行时没有任何影响;
要实现你说的这个功能,必需要自定义函数,
更多追问追答
追问
是的,我是有前提的,就是希望其他都是大写,就只有我截取的要小写。
追答
create or replace function conv_ul(l_str in varchar2) return varchar2
as
l_str1 varchar2(4000);
i pls_integer := 1;
d_start pls_integer := 1;
begin
if instr(l_str,'''',1,i)=0 then
return l_str;
end if;
while instr(l_str,'''',1,i)>0 loop
select l_str1||decode(mod(i,2),1,substr(l_str,d_start,instr(l_str,'''',1,i)-d_start)||'''',lower(substr(l_str,d_start,instr(l_str,'''',1,i)-d_start)||'''')) into l_str1 from dual;
d_start := instr(l_str,'''',1,i)+1;
i := i+1;
end loop;
return l_str1||substr(l_str,d_start);
end;
/

SELECT CONV_UL('DECODE(DECODE(MSS_MAP_NAME, ''UPLOC'',MAP_REQ, 0), 0, 0, DECODE(MSS_MAP_NAME, ''UPLOC'', MAP_RTZ,0) / DECODE(MSS_MAP_NAME, ''PRVSUBINFO'', MAP_REQ, 0)')
) FROM DUAL;
死憋狂战的神牛
2014-05-07 · TA获得超过137个赞
知道答主
回答量:76
采纳率:0%
帮助的人:51.6万
展开全部
不太懂你的意思 不能直接用lower么
追问
我要的是截取中间带引号的做转换,然后update到原来的数据上去。比如'UPLOC',我只要转换成uploc然后再更行进入到数据中去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式