在oracle中创建函数时,权限不足

时间:2012-05-07 01:06:49

标签: oracle privileges

我对oracle知之甚少。我试着创建一个像下面这样的函数。

CREATE OR REPLACE FUNCTION "BOOK"."CONVERT_TO_WORD" (totpayable IN NUMBER) RETURN VARCHAR
AS
  totlength   NUMBER;
  num VARCHAR2(14);

  word VARCHAR2(70);
  word1 VARCHAR2(8);
 BEGIN

   SELECT LENGTH(totpayable) INTO totlength FROM dual;

   WHILE totlength>0
       LOOP
           SELECT SUBSTR(totpayable,totlength,1) INTO num FROM dual;
           IF num='-' THEN
           word1:='(Excess)';
           END IF;
           IF num='0' THEN
           word1:='Zero';
           END IF;
           IF num='1' THEN
           word1:='One';
           END IF;
           IF num='2' THEN
           word1:='Two';
           END IF;
           IF num='3' THEN
           word1:='Three';
           END IF;
           IF num='4' THEN
           word1:='Four';
           END IF;
           IF num='5' THEN
           word1:='Five';
           END IF;
           IF num='6' THEN
           word1:='Six';
           END IF;
           IF num='7' THEN
           word1:='Seven';
           END IF;
           IF num='8' THEN
           word1:='Eight';
           END IF;
           IF num='9' THEN
           word1:='Nine';
           END IF;
           word:=word1||' '||word;
           totlength:=totlength-1;
       END LOOP;
RETURN word;

END ;

当我尝试执行它时,我收到如下错误:

  

ORA-01031:权限不足

     

01031.00000 - “权限不足”

     

*原因:尝试更改当前用户名或密码              没有适当的特权。如果,也会发生此错误              尝试在没有必要操作的情况下安装数据库              系统权限。              在DBMS MAC中配置Trusted Oracle时,可能会发生此错误              如果用户被授予更高标签的必要权限              比当前登录。

我使用此命令为用户授予了权限:

grant all privilege to book;

2 个答案:

答案 0 :(得分:4)

使用grant create session to book;,然后创建程序

答案 1 :(得分:3)

授予创建程序以预订;