编写一个算命的过程,接收输入的一个生日(yyyymmdd),每2位相加取个位,最后得到一位数字,此数字为偶数(命好),为质数(一般),否则为(命运悲惨).算法如下;
19850324
0735356
708881
78669
5425
967
53
8 -------------------偶数,命好
19850324
0735356
708881
78669
5425
967
53
8 -------------------偶数,命好
解决方案 »
- 关于两层游标的用法的疑问
- Oracle library OCI.DLL or ORA803.DLL could not be loaded
- Oracle 修改表结构..请高手兄弟姐妹们看看..高分
- ORACLE WEB 开发 配置 ( 解决问题马上结贴)
- oracle 行列转换的问题.高分求救!!!
- 急问如何写这样一个视图?
- 求急!调试存储过程时,报ora-06550 PLS-00103
- 重装系统后,可否不用重新安装orical而直接将以前的安装恢复并能够使用(以前的安装不在系统盘),还有大家用什么工具管理开发orical
- 存储过程中不能访问公共同义词
- sql问题,分组查询功能的实现?
- 一个右关联的问题
- 关于DBLink1的更新和添加
Result varchar(8);
v_birthstr varchar(8);
v_str varchar(8);
v_flag boolean := true;
begin
v_birthstr := to_char(birthday, 'yyyymmdd');
while (length(v_birthstr)>1)
loop
dbms_output.put_line(v_birthstr);
v_str := '';
for ind in 1..length(v_birthstr) loop
v_str := v_str||mod(to_number(substr(v_birthstr, ind, 1))+to_number(substr(v_birthstr, ind+1, 1)), 10);
end loop;
v_birthstr := v_str;
end loop;
dbms_output.put_line(v_birthstr);
if(mod(to_number(v_birthstr), 2) = 0) then
result := 'Good';
else
result := 'Bad';
end if;
return(Result);
end suanming;
SQL> select suanming(sysdate) lucky from dual;
LUCKY
------------------------------------------------
Good20090814
2099895
298774
17541
8295
014
15
6
SQL> select suanming(to_date('19850324', 'yyyymmdd')) lucky from dual;
LUCKY
-----------------------------------------------------------------------
Good19850324
0735356
708881
78669
5425
967
53
8