oracle数据库写代码,看不懂开发写的sql代码?

spool  a1.sql

select '

variable al_dmsb number;

exec :al_dmsb := '||b.a||';

SELECT emr_dmzd.*

FROM emr_dmzd

WHERE (dmlb = 101)

AND (   sjdm IN (

SELECT dmsb

FROM emr_dmzd

WHERE dmlb = 101

AND (   sjdm IN (SELECT dmsb

FROM emr_dmzd

WHERE dmlb = 101 AND (dmsb = :al_dmsb OR sjdm = :al_dmsb))

OR dmsb IN (SELECT dmsb

FROM emr_dmzd

WHERE dmlb = 101 AND (dmsb = :al_dmsb OR sjdm = :al_dmsb))

))

OR dmsb IN (

SELECT dmsb

FROM emr_dmzd

WHERE dmlb = 101

AND (   sjdm IN (SELECT dmsb

FROM emr_dmzd

WHERE dmlb = 101 AND (dmsb = :al_dmsb OR sjdm = :al_dmsb))

OR dmsb IN (SELECT dmsb

FROM emr_dmzd

WHERE dmlb = 101 AND (dmsb = :al_dmsb OR sjdm = :al_dmsb))

))

);

' x from

(

select sjdm a FROM emr_dmzd where dmlb = 101

union

select dmsb a FROM emr_dmzd where dmlb = 101

) b where a is not null;

spool off

spool a2.sql

select '

variable al_dmsb number;

exec :al_dmsb := '||b.a||';

SELECT emr_dmzd.*  FROM emr_dmzd WHERE (dmlb = 101) AND (dmsb = :al_dmsb OR sjdm = :al_dmsb);

' x from

(

select sjdm a FROM emr_dmzd where dmlb = 101

union

select dmsb a FROM emr_dmzd where dmlb = 101

) b where a is not null;

spool off

--把输出记录到文本文件,适当编辑.然后

spool a1.txt

@a1.sql

spool off

spool a2.txt

@a2.sql

spool off

diff a1.txt a2.txt

1c1

< SQL> @a1.sql

---

> SQL> @a2.sql

--完全一样!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值