在Oracle 中写function ,新手求解

若年份为2001-2009年的话,取最后一位数字,若年份为2010-2099年的话,就用字母A-Z表示作循环,其中I,O,S,Z字母不用,若年份为2101-2109年的话... 若年份为2001-2009年的话,取最后一位数字,若年份为2010-2099年的话,就用字母A-Z表示作循环,其中I,O,S,Z字母不用,若年份为2101-2109年的话,依然取最后一位数,若年份为2111-2199年的话,接着上面的字母循环下去,依次类推。。。
用oracle function 怎么写,新手求解。。。
展开
 我来答
百度网友b37ba8c
2012-02-17 · TA获得超过334个赞
知道小有建树答主
回答量:457
采纳率:0%
帮助的人:228万
展开全部
基本语法就不说了,给你提供一个比较简单的思路。
假设输入参数为v_year
首先定义一个字符串,vs_str:='ABCDEFGHJKLMNPQRTUVWXY'
取输入参数的后两位vn_l2,也就是用100取模,vn_l2:=mod(v_year,100)
如果vn_l2小于10,则取个位数。
如果vn_l2大于等于10,则取vs_str串中的某一位。因vs_str共22个字符串,所以该字符串中用22取模得到的数对应的字符就是想要的结果,如果模为0,则返回最后一个字符。
if vn_l2 < 10 then
return vn_l2;
else
vn_p := mod(vn_l2-9,22);
if vn_p = 0 then
return 'Y';
else
return substr(vs_str,vn_p,1)
end if;
end if;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式