2

私はオラクルの知識がほとんどありません。以下のような関数を作成しようとしました。

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 - 「権限が不十分です」

*原因: 適切な権限なしで現在のユーザー名またはパスワードを変更しようとしました。このエラーは、必要なオペレーティング システム権限なしでデータベースをインストールしようとした場合にも発生します。Trusted Oracle が DBMS MAC で構成されている場合、ユーザーが現在のログインよりも高いラベルで必要な権限を付与されていると、このエラーが発生することがあります。

次のコマンドを使用して、ユーザーに権限を付与しました。

grant all privilege to book;

4

2 に答える 2

4

grant create session to book;プロシージャを使用して作成する

于 2012-05-07T01:10:40.770 に答える
4

予約するプロシージャの作成を許可します。

于 2016-09-08T06:42:23.273 に答える