procedure InsertC(intd   in varchar2,intM in varchar2) 
  IS
  BEGIN
     delete from tab where id = intd;// 这里有错误,去掉这句就好了
     insert into tab2
       (d1,d2)
      select 
            dd1,dd2
       from tab3
       where id = id
            and name=name;
  END InsertC;
创建的这个包体中,
delete语句有错误,请问有什么问题?

解决方案 »

  1.   

    行号= 23 列号= 6 错误文本= PL/SQL: SQL Statement ignored
    行号= 23 列号= 23 错误文本= PL/SQL: ORA-01031: 权限不足
    -------
    23行就是delete这行,去掉这一行可以运行,错在哪里了?
      

  2.   

     FUNCTION F_GET_BIRTHDAY_BY_CERTICODE(P_CERTI_TYPE NUMBER, P_CERTI_CODE VARCHAR2) RETURN CHAR
     is
          v_id_length number(2);
          v_id_tmp varchar2(10);
          v_id_birthday varchar2(10);
     begin
    同上,
    你传入的参数intd、intM要在is后面声明具体类型。
      

  3.   

    delete from tab where id = intd;
    tab是系统表.
      

  4.   

    execute immediate 'delete from tab where id = intd';注意要GRANT CREATE ANY TABLE TO dbsa 权限
      

  5.   

    delete from tab where id = intd;
    表tab是系统表.
    --------------
    改个表也不行,一样的错误
    delete from otherTab where id = intd;
      

  6.   

    你这个用户有delete的权限吗?