第七行就是execute immediate strsql;

解决方案 »

  1.   

    grant create trigger to sdspadmin
      

  2.   

    在执行态SQL时要显示授权GRANT CREATE TRIGGER TO "TEST"
    GRANT CREATE SEQUENCE TO "TEST"
      

  3.   

    还有我用的是system用户权限应该没问题。to: welyngj(不做老实人):你说的是什么意思
      

  4.   

    还有我用的是system用户权限应该没问题。to: welyngj(不做老实人):你说的是什么意思
      

  5.   

    grant resource,create any synonym to sdspadmin;
      

  6.   

    grant create trigger to sdspadmin
    grant权限指令,意思给sdspadmin加创建trigger 的权利
      

  7.   

    GRANT CREATE ANY SEQUENCE TO "sdspadmin";
    GRANT CREATE ANY TRIGGER TO "sdspadmin";
      

  8.   

    create or replace procedure sdspadmin.pr_CreateIdentityColumn
    (tablename varchar2,columnname varchar2)
    as 
    strsql varchar2(1000);
    begin
           strsql := 'create sequence seq_'||tablename||' minvalue 1 maxvalue 999999999999999999 start with 1 increment by 1 nocache';
           GRANT CREATE ANY SEQUENCE TO "sdspadmin";
           execute immediate strsql;
           GRANT CREATE ANY TRIGGER TO "sdspadmin";
           strsql := 'create or replace trigger trg_'||tablename||' before insert on '||tablename||' for each row begin select seq_'||tablename||'.nextval into :new.'||columnname||' from dual; end';
           execute immediate strsql;
    end;
    是这样么?
    不行啊
      

  9.   

    呵呵,不是这样的,源代码照旧,你用sqlplus登陆system帐号sql>GRANT CREATE ANY SEQUENCE TO "sdspadmin";sql>GRANT CREATE ANY TRIGGER TO "sdspadmin";然后重新编译就可以了