Oracle中执行一个dbms_job包,以下四个写法:
begin
dbms_job.run(44);
end; ----这样正常运行dbms_job.run(44); ----这样会报错begin
execute dbms_job.run(44);
end; ----这样会报错execute dbms_job.run(44); ----这样正常运行
综上所述,请问,begin ....end在Oracle中除了区分程序块,是否还有其他功能,可替代execute?
begin
dbms_job.run(44);
end; ----这样正常运行dbms_job.run(44); ----这样会报错begin
execute dbms_job.run(44);
end; ----这样会报错execute dbms_job.run(44); ----这样正常运行
综上所述,请问,begin ....end在Oracle中除了区分程序块,是否还有其他功能,可替代execute?
解决方案 »
- oracle oem服务起不来
- 新手求教:ORA-01422: 实际返回的行数超出请求的行数
- 表同步问题 求解决方案
- 求解oracle目录directory的重建控制
- 请问怎样判断两个日期之间的日期是否在另一个表里
- 存储过程一定要用create or replace procedure来修改才行吗?
- 熟悉pl/sql developer的进来帮个忙,谢谢。
- 如何在一个过程中调用另一个有参数的过程?(注:Oracle)
- 请duanzilin(寻)帮忙解答一下这个问题
- 从日期字段取年度,季节的写法,要多少分就多少分
- PL/sql 关于全局变量的问题
- oracle 11gR1 RAC CRS-0254
Oracle的pl/sql块都至少有一个begin...end来表示完整块,在begin...end中可以自定义一些函数,存储过程和包等,这些自定义代码由begin开始执行,其所对应的end结束。
from (select t2.onenum,
t2.allnum,
t2.printstatus,
t.apfd_code,
t2.gidl_doc_numb,
t2.orgid,
t.bdgt_subj,
t3.subjectcode,
t3.subjectname,
case
when t.acst_id not in
(887209, 2001, 3001, 4001, 5001, 7001, 8001, 6066768) then
decode(t2.fund_char,
'0',
'预算内',
'1',
'其他财政性资金',
'2',
'其他',
'3',
'预算内(往年)',
'4',
'其他财政性资金(往年)',
'5',
'其他(往年)')
else
'其他'
end as fund_char,
t2.pay_amnt,
t2.dtal_id,
t2.item,
t4.name,
t.gath_org_name,
t2.smry smry,
t.acst_id
from ga_t_apfd_bill t,
sysmgr_org t1,
ga_t_apfd_bill_dtal t2,
busmgr_funnew t3,
sysmgr_user t4
where 1 = 1
and t.gath_org_id = t1.orgid(+)
and t.bdgt_subj = t3.subjectcode(+)
and t.apfd_user_id = t4.userid(+)
and t2.apfd_bill_id = t.apfd_bill_id
and t.year = 2012
and t3.year = 2012
and t.ACST_ID = 1001
and t.is_Del = 0
and t.status in ('4', '5')
and t2.gidl_doc_numb like % '414%'
order by t1.orgcode, t.bdgt_subj, to_number(t.APFD_CODE))这段哪儿错了??
这么明显的错误,相信整条语句不可能上你写了来的。。