wdsa15413243513215 2017-07-14 09:02 采纳率: 0%
浏览 740

oracle存储过程的一个问题

create or replace procedure evejb
as
v_createsql1 varchar2(400);

v_dropsql1 varchar2(100);
v_count1 number(9);

begin

v_createsql1:='create table emp (empno nvarchar2(60),empname nvarchar2(60),sex nvarchar2(60),sal nvarchar2(60),dept nvarchar2(60),city nvarchar2(60))';
v_dropsql1:='drop table emp';

select count(*) into v_count1 from user_tables where table_name='EMP';

if v_count1>0
then
execute immediate v_dropsql1;
execute immediate v_createsql1;

    commit;
    else
    execute immediate v_createsql1;
    commit;
    end if;
    insert into emp values('XX01','王小二','man','5400','XX','HZ');

end;
我这边写了一个存储过程,想实现如下效果,如果emp表存在,就先drop,再create,如果不存在,就直接create,表建好之后,再insert into到这个表,但是在编译的时候提示,表或试图不存在,这个是在检查insert into emp这行的时候提示的,请问一下存储过程应该怎么去改才能实现我的意图?

  • 写回答

5条回答 默认 最新

  • gongrui_59 2017-07-14 09:27
    关注

    可能创建表权限不足哦

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器