Oracle 创建存储过程报错:无效create命令 5

createtoreplaceprocedureP_lm_km_mzassl_sumnumber(10);begincreatetablelm_km_mz_newasse... create to replace procedure P_lm_km_mz
as
sl_sum number(10);
begin
create table lm_km_mz_new as select b.mk,a.mz,b.mc,b.sl,b.daohrq,b.qnet_ar,b.stad
from lm_km_mz a, zgdt.vwfmsview@RM.REGRESS.RDBMS.DEV.US.ORACLE.COM b
where b.daohrq=to_char(sysdate-1)
and a.mk=b.mk;
select sum(c.SL) into sl_sum from lm_km_mz_new c;
--drop table lm_km_mz_new;
dbms_output.putline('当前来煤总量为:',||sl_sum);
end P_lm_km_mz;
展开
 我来答
charlycong
2013-09-04 · TA获得超过445个赞
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:289万
展开全部
create to replace procedure P_lm_km_mz 应该是create or replace
更多追问追答
追问

呵呵。。失误。可是虽然执行没报错,那个出来的存储过程图标旁还是有个小红叉

这段代码也单独执行也没问题

追答
create or replace procedure P_lm_km_mz as
  sl_sum number(10);
  v_sql  varchar2(4000);
begin
  v_sql := ' create or procedure table lm_km_mz_new as select b.mk,a.mz,b.mc,b.sl,b.daohrq,b.qnet_ar,b.stad
 from  lm_km_mz a, zgdt.vwfmsview@RM.REGRESS.RDBMS.DEV.US.ORACLE.COM b
    where b.daohrq=to_char(sysdate-1)
     and a.mk=b.mk;';
  execute immediate v_sql;

  v_sql := 'select sum(c.SL) into sl_sum from lm_km_mz_new c';
  execute immediate v_sql;
  dbms_output.put_line('当前来煤总量为:' || sl_sum);
end P_lm_km_mz;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mengren5927
2013-09-04 · TA获得超过230个赞
知道小有建树答主
回答量:492
采纳率:0%
帮助的人:181万
展开全部
or replace啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Wscang_911
2013-09-04 · TA获得超过110个赞
知道答主
回答量:55
采纳率:0%
帮助的人:32.2万
展开全部
应该是create or replace吧!另外你的用户有creaet 存储过程的权限吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式