永发信息网

刚学习使用db2,在创建自定义函数时遇到一个问题,函数代码如下

答案:2  悬赏:40  手机版
解决时间 2021-04-09 18:03
create or replace function F_GETDATE_BY_Q(p_quarter integer)
language sql
specific F_GETDATE_BY_Q
returns varchar(8)
begin atomic
declare v_result varchar(8);
declare v_current_date varchar(8);
declare v_date_of_quarter_end varchar(8);
declare v_date_of_quarter_begin varchar(8);

set v_current_date = (select to_char(current date,'YYYYMMDD') from sysibm.sysdummy1);
set v_date_of_quarter_end = (select max(biz_date) from f_com_com_date where year = year(current date) and q = p_quarter);
set v_date_of_quarter_begin = (select min(biz_date) from f_com_com_date where year = year(current date) and q = p_quarter);

if (v_current_date < v_date_of_quarter_begin) then
set v_result = '19000230';
else if (v_current_date >= v_date_of_quarter_begin and v_current_date <= v_date_of_quarter_end) then
set v_result = v_current_date;
else if (v_current_date > v_date_of_quarter_end) then
set v_result = v_date_of_quarter_end;
end if;

return v_result;
end

>[错误] 脚本行:24-24 -------------------------------------
An unexpected token "END-OF-STATEMENT" was found following "end". Expected tokens may include: "JOIN ".. SQLCODE=-104, SQLSTATE=42601, DRIVER=3.53.71

麻烦大家给看下是哪儿出错了,先谢了
最佳答案
你是怎么执行的脚本呢? 使用db2 -td# proc.sql这样执行的吗?
那样的话,你需要在procedure的末尾end的后面加一个‘#’符号,表示结束。

如下:
return v_result;
end #
全部回答
atomic是将该部分程序块指定为一个整体,其中任何一个语句失败,则整个程序块都相当于没做,包括包含在atomic块内的已经执行成功的语句也相当于没做,有点类似于transaction。 这个 atomic 一般是使用在 触发器上面的。 而你的是 自定义 函数。 不更新任何数据的, 加 atomic 没有意义啊!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
数码宝贝大师里的大耳兽和哥玛兽在哪打孵化蛋
下列措施中哪些是通过控制噪声声源来减少噪声
小米6陶瓷和亮版哪个好
高粱米多长时间能煮熟,羊肉多长时间能熟
3月9号是哪位名人的生日?
新安边镇在什么地方啊,我要过去处理事情
石门县常德正新鸡排(宝峰店)地址是什么,有没
李白各个时期的代表作是什么?
最近天天喝酒 喝完晚上睡觉就落枕 有啥好办法
日本精华液资生堂与奥尔滨哪个好
我是在校大学生,浙江的,想自己办韩国的自由
单选题Whathesaidjustnowgotallofus____
年尾适合辞职吗?
小米盒子晚上要不要关机
建军九十周年诗歌朗颂,关于建军的诗句
推荐资讯
生物圈是指A.各种动植物和细菌B.各种生物的生
什么轮滑鞋最好,轮滑初学者的注意事项和基本
靠视差过关的游戏有哪些?
第一次装机。。机箱装完后怎么刷bios?有那些
(初恋的香味就这样被我们寻回) 这句是伦七
重庆地区离主城近的哪里有养竹鼠的??
赞美老人家笑容的句子,赞美一个人微笑起来好
诗歌鉴赏结构技巧,席慕容的山路 的诗歌赏析。
2015款新锋范别人颜色是甜橙红还是瑞丽红
象棋对弈裁判已判和一方不同意的情况下限着多
口琴出学嘴型对不准孔怎么办
交朋友要真诚,要把握好尺度的名言
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?