呵呵,存储过程中一般只执行查询和DML语句,要执行DDL就用动态sql吧:
create or replace procedure ppp as
begin
  execute immediate 'create table a (id number)';
end;

解决方案 »

  1.   

    行了行了,呵呵……谢谢了,您能再告诉我DML语句和DDL是什么含义吗?我是菜鸟,呵呵……
      

  2.   

    DML语句:数据操纵语言,它包括:INSERT ,SELECT ,UPDATE,DELETE,LOCK TABLE 等
    DDL语句:数据定义语言,如:create ,alter ,drop,grant 等等
      

  3.   

    对,用动态sql才能执行ddl语句在存储过程中。而且要赋予足够权限。create procedure pro(....)
    as
    str varchar2(50);
    begin
    str:='create view test as select * from siire_jh';
    execute immediate str;
    end pro;
    /
      

  4.   

    动态SQL能实现,
    EXECUTE IMMEDIATE
      

  5.   

    补充楼上的赋予足够权限,不等于有DBA权限就可以了如果是create,就应该有create table 的权限