create or replace function F_GETDATE_BY_Q(p_quarter integer)language sqlspecific F_GETDATE_BY_Qreturns varchar(8)begin atomicdeclare 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) thenset v_result = '19000230';else if (v_current_date >= v_date_of_quarter_begin and v_current_date <= v_date_of_quarter_end) thenset v_result = v_current_date;else if (v_current_date > v_date_of_quarter_end) thenset 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 <joined_table>".. SQLCODE=-104, SQLSTATE=42601, DRIVER=3.53.71
1 回答

慕勒3428872
TA貢獻1848條經驗 獲得超6個贊
你是怎么執行的腳本呢? 使用db2 -td# proc.sql這樣執行的嗎?
那樣的話,你需要在procedure的末尾end的后面加一個‘#’符號,表示結束。
如下:
return v_result;
end #
另外data studio 沒用過, 不過你可以把它copy到文件里,然后再命令行里面執行。
添加回答
舉報
0/150
提交
取消