请问在oracle存储过程里怎样实现for/while/loop循环和动态执行sql?

lly9900 2003-08-21 09:42:47
如果有一张表tbl_test(
code char(2) not null,
rq date not null,
je_01 number(4,0),
je_02 number(4,0),
......
je_31 number(4,0)
)

如果2月份是28天,则2月份的je的平均值是select code,rq, je_01 + je_02 + ... + je_28 / 28 ,
如果在存储过程里用for或loop自动生成这个动态sql语句并执行该语句呢?


...全文
1947 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangqingdelphi 2003-08-22
  • 打赏
  • 举报
回复
用户指开发人员,还是使用者。如果是使用者你的项目有得做了。
beckhambobo 2003-08-22
  • 打赏
  • 举报
回复
CREATE OR REPLACE PACKAGE pkg_test
AS
TYPE myrctype IS REF CURSOR;
END pkg_test;
/
create procedure pro(p_date in date,p_rc out pkg_test.myrctype)
as
str varchar2(100);
num number;
begin
num:=to_number(to_char(last_day(p_date),'mm'));
str:='select code,rq,';
for i in 1..num loop
if num>=10 then
str:=str||'je_'||num||'+';
else
str:=str||',je_0'||num||'+';
end if;
end loop;
str:=substr(str,1,length(str)-1)||'/'||num||' from tbl_test';
open p_rc for str;
end;
/
godofn 2003-08-22
  • 打赏
  • 举报
回复
用户只能给你的项目提出需求,怎么实现是由你来决定的,只要能完成他们的需求,用户没有权利知道你是怎么实现的,那是技术问题,也是可以保密的技术资料,用户无权干涉,也无权知道你是怎么实现的。
lly9900 2003-08-21
  • 打赏
  • 举报
回复
现在用户就是要求这样设计的,表结构必须横向设计
tiangou 2003-08-21
  • 打赏
  • 举报
回复
你的表格设计得不大合理

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧