VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2166|回复: 3

请问定义游标cursor中用select 时为何不可以用 case when 语句?

[复制链接]

2

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-2-18 23:30:02 | 显示全部楼层 |阅读模式
如题,例如
select a.* , c.ovt_date ,
     b.shf_at1 ,
     case when b.shf_of1 < b.shf_at1 then trunc(a.rcd_dat) + 1 + (b.shf_of1 - trunc(b.shf_of1))
          else b.shf_of1 end
     from att_rcd a, att_supply_ovt_t c , att_shf b
      where rcd_dat = to_date('20161127','yyyymmdd') and 。。。。省略

以上SQL可以有运行结果,但是在定义游标时却出错,如:

cursor test is
   select.......语句如上段

为何出错?
回复

使用道具 举报

0

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-4-26 14:00:01 | 显示全部楼层
哦.这个你需要动态执行.如:

sql='select ....'

execute immediate 'sql';
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-5-8 17:45:01 | 显示全部楼层
execute immediate 'select ..'
  学习
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-30 16:30:01 | 显示全部楼层
请问,为何需要动态执行呢?谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表